You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Michael Schuerig (JIRA)" <ax...@ws.apache.org> on 2004/12/09 03:41:09 UTC
[jira] Created: (AXIS-1709) Client#setOperation(String) needs to take header params into account (Patch)
Client#setOperation(String) needs to take header params into account (Patch)
----------------------------------------------------------------------------
Key: AXIS-1709
URL: http://nagoya.apache.org/jira/browse/AXIS-1709
Project: Axis
Type: Bug
Versions: current (nightly)
Reporter: Michael Schuerig
Currently Call#setOperation(String) erroneously adds every parameter as a body parameter. Here's patch that checks whether is an IN or OUT header and adds it as a header parameter.
Michael
Index: Call.java
===================================================================
RCS file: /home/cvspublic/ws-axis/java/src/org/apache/axis/client/Call.java,v
retrieving revision 1.235
diff -u -3 -p -u -r1.235 Call.java
--- Call.java 30 Nov 2004 21:54:32 -0000 1.235
+++ Call.java 9 Dec 2004 02:27:56 -0000
@@ -1013,9 +1013,33 @@ public class Call implements javax.xml.r
addParameter(new QName("", paramName), xmlType,
javaType, parameterMode);
}
-
+
+ /**
+ * Adds a parameter type as a soap:header.
+ * @param paramName - Name of the parameter
+ * @param xmlType - XML datatype of the parameter
+ * @param parameterMode - Mode of the parameter-whether IN, OUT or INOUT
+ * @param headerMode - Mode of the header. Even if this is an INOUT
+ * parameter, it need not be in the header in both
+ * directions.
+ * @exception JAXRPCException - if isParameterAndReturnSpecRequired returns
+ * false, then addParameter MAY throw
+ * JAXRPCException....actually Axis allows
+ * modification in such cases
+ */
+ public void addParameterAsHeader(QName paramName, QName xmlType,
+ ParameterMode parameterMode,
+ ParameterMode headerMode) {
+ Class javaType = null;
+ TypeMapping tm = getTypeMapping();
+ if (tm != null) {
+ javaType = tm.getClassForQName(xmlType);
+ }
+ addParameterAsHeader(paramName, xmlType, javaType,
+ parameterMode, headerMode);
+ }
+
/**
-
* Adds a parameter type as a soap:header.
* @param paramName - Name of the parameter
* @param xmlType - XML datatype of the parameter
@@ -1409,7 +1433,13 @@ public class Call implements javax.xml.r
Parameter p = (Parameter) parameters.list.get(j);
// Get the QName representing the parameter type
QName paramType = Utils.getXSIType(p);
- this.addParameter( p.getQName(), paramType, modes[p.getMode()]);
+ ParameterMode mode = modes[p.getMode()];
+ if (p.isInHeader() || p.isOutHeader()) {
+ this.addParameterAsHeader( p.getQName(), paramType,
+ mode, mode);
+ } else {
+ this.addParameter( p.getQName(), paramType, mode);
+ }
}
Map faultMap = bEntry.getFaults();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
[jira] Resolved: (AXIS-1709) Client#setOperation(String) needs to take header params into account (Patch)
Posted by "Davanum Srinivas (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXIS-1709?page=history ]
Davanum Srinivas resolved AXIS-1709:
------------------------------------
Resolution: Fixed
Fixed. Thanks.
-- dims
> Client#setOperation(String) needs to take header params into account (Patch)
> ----------------------------------------------------------------------------
>
> Key: AXIS-1709
> URL: http://issues.apache.org/jira/browse/AXIS-1709
> Project: Axis
> Type: Bug
> Versions: current (nightly)
> Reporter: Michael Schuerig
>
> Currently Call#setOperation(String) erroneously adds every parameter as a body parameter. Here's patch that checks whether is an IN or OUT header and adds it as a header parameter.
> Michael
> Index: Call.java
> ===================================================================
> RCS file: /home/cvspublic/ws-axis/java/src/org/apache/axis/client/Call.java,v
> retrieving revision 1.235
> diff -u -3 -p -u -r1.235 Call.java
> --- Call.java 30 Nov 2004 21:54:32 -0000 1.235
> +++ Call.java 9 Dec 2004 02:27:56 -0000
> @@ -1013,9 +1013,33 @@ public class Call implements javax.xml.r
> addParameter(new QName("", paramName), xmlType,
> javaType, parameterMode);
> }
> -
> +
> + /**
> + * Adds a parameter type as a soap:header.
> + * @param paramName - Name of the parameter
> + * @param xmlType - XML datatype of the parameter
> + * @param parameterMode - Mode of the parameter-whether IN, OUT or INOUT
> + * @param headerMode - Mode of the header. Even if this is an INOUT
> + * parameter, it need not be in the header in both
> + * directions.
> + * @exception JAXRPCException - if isParameterAndReturnSpecRequired returns
> + * false, then addParameter MAY throw
> + * JAXRPCException....actually Axis allows
> + * modification in such cases
> + */
> + public void addParameterAsHeader(QName paramName, QName xmlType,
> + ParameterMode parameterMode,
> + ParameterMode headerMode) {
> + Class javaType = null;
> + TypeMapping tm = getTypeMapping();
> + if (tm != null) {
> + javaType = tm.getClassForQName(xmlType);
> + }
> + addParameterAsHeader(paramName, xmlType, javaType,
> + parameterMode, headerMode);
> + }
> +
> /**
> -
> * Adds a parameter type as a soap:header.
> * @param paramName - Name of the parameter
> * @param xmlType - XML datatype of the parameter
> @@ -1409,7 +1433,13 @@ public class Call implements javax.xml.r
> Parameter p = (Parameter) parameters.list.get(j);
> // Get the QName representing the parameter type
> QName paramType = Utils.getXSIType(p);
> - this.addParameter( p.getQName(), paramType, modes[p.getMode()]);
> + ParameterMode mode = modes[p.getMode()];
> + if (p.isInHeader() || p.isOutHeader()) {
> + this.addParameterAsHeader( p.getQName(), paramType,
> + mode, mode);
> + } else {
> + this.addParameter( p.getQName(), paramType, mode);
> + }
> }
>
> Map faultMap = bEntry.getFaults();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
[jira] Commented: (AXIS-1709) Client#setOperation(String) needs to take header params into account (Patch)
Posted by "Michael Schuerig (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXIS-1709?page=comments#action_57324 ]
Michael Schuerig commented on AXIS-1709:
----------------------------------------
Sigh, the summary should have refered to Call#setOperation(String), of course. I have no idea how to change it now.
Michael
> Client#setOperation(String) needs to take header params into account (Patch)
> ----------------------------------------------------------------------------
>
> Key: AXIS-1709
> URL: http://issues.apache.org/jira/browse/AXIS-1709
> Project: Axis
> Type: Bug
> Versions: current (nightly)
> Reporter: Michael Schuerig
>
> Currently Call#setOperation(String) erroneously adds every parameter as a body parameter. Here's patch that checks whether is an IN or OUT header and adds it as a header parameter.
> Michael
> Index: Call.java
> ===================================================================
> RCS file: /home/cvspublic/ws-axis/java/src/org/apache/axis/client/Call.java,v
> retrieving revision 1.235
> diff -u -3 -p -u -r1.235 Call.java
> --- Call.java 30 Nov 2004 21:54:32 -0000 1.235
> +++ Call.java 9 Dec 2004 02:27:56 -0000
> @@ -1013,9 +1013,33 @@ public class Call implements javax.xml.r
> addParameter(new QName("", paramName), xmlType,
> javaType, parameterMode);
> }
> -
> +
> + /**
> + * Adds a parameter type as a soap:header.
> + * @param paramName - Name of the parameter
> + * @param xmlType - XML datatype of the parameter
> + * @param parameterMode - Mode of the parameter-whether IN, OUT or INOUT
> + * @param headerMode - Mode of the header. Even if this is an INOUT
> + * parameter, it need not be in the header in both
> + * directions.
> + * @exception JAXRPCException - if isParameterAndReturnSpecRequired returns
> + * false, then addParameter MAY throw
> + * JAXRPCException....actually Axis allows
> + * modification in such cases
> + */
> + public void addParameterAsHeader(QName paramName, QName xmlType,
> + ParameterMode parameterMode,
> + ParameterMode headerMode) {
> + Class javaType = null;
> + TypeMapping tm = getTypeMapping();
> + if (tm != null) {
> + javaType = tm.getClassForQName(xmlType);
> + }
> + addParameterAsHeader(paramName, xmlType, javaType,
> + parameterMode, headerMode);
> + }
> +
> /**
> -
> * Adds a parameter type as a soap:header.
> * @param paramName - Name of the parameter
> * @param xmlType - XML datatype of the parameter
> @@ -1409,7 +1433,13 @@ public class Call implements javax.xml.r
> Parameter p = (Parameter) parameters.list.get(j);
> // Get the QName representing the parameter type
> QName paramType = Utils.getXSIType(p);
> - this.addParameter( p.getQName(), paramType, modes[p.getMode()]);
> + ParameterMode mode = modes[p.getMode()];
> + if (p.isInHeader() || p.isOutHeader()) {
> + this.addParameterAsHeader( p.getQName(), paramType,
> + mode, mode);
> + } else {
> + this.addParameter( p.getQName(), paramType, mode);
> + }
> }
>
> Map faultMap = bEntry.getFaults();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
[jira] Commented: (AXIS-1709) Client#setOperation(String) needs to take header params into account (Patch)
Posted by "Michael Schuerig (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXIS-1709?page=comments#action_57720 ]
Michael Schuerig commented on AXIS-1709:
----------------------------------------
Can someone please have a look at this and commit it.
Thanks,
Michael
> Client#setOperation(String) needs to take header params into account (Patch)
> ----------------------------------------------------------------------------
>
> Key: AXIS-1709
> URL: http://issues.apache.org/jira/browse/AXIS-1709
> Project: Axis
> Type: Bug
> Versions: current (nightly)
> Reporter: Michael Schuerig
>
> Currently Call#setOperation(String) erroneously adds every parameter as a body parameter. Here's patch that checks whether is an IN or OUT header and adds it as a header parameter.
> Michael
> Index: Call.java
> ===================================================================
> RCS file: /home/cvspublic/ws-axis/java/src/org/apache/axis/client/Call.java,v
> retrieving revision 1.235
> diff -u -3 -p -u -r1.235 Call.java
> --- Call.java 30 Nov 2004 21:54:32 -0000 1.235
> +++ Call.java 9 Dec 2004 02:27:56 -0000
> @@ -1013,9 +1013,33 @@ public class Call implements javax.xml.r
> addParameter(new QName("", paramName), xmlType,
> javaType, parameterMode);
> }
> -
> +
> + /**
> + * Adds a parameter type as a soap:header.
> + * @param paramName - Name of the parameter
> + * @param xmlType - XML datatype of the parameter
> + * @param parameterMode - Mode of the parameter-whether IN, OUT or INOUT
> + * @param headerMode - Mode of the header. Even if this is an INOUT
> + * parameter, it need not be in the header in both
> + * directions.
> + * @exception JAXRPCException - if isParameterAndReturnSpecRequired returns
> + * false, then addParameter MAY throw
> + * JAXRPCException....actually Axis allows
> + * modification in such cases
> + */
> + public void addParameterAsHeader(QName paramName, QName xmlType,
> + ParameterMode parameterMode,
> + ParameterMode headerMode) {
> + Class javaType = null;
> + TypeMapping tm = getTypeMapping();
> + if (tm != null) {
> + javaType = tm.getClassForQName(xmlType);
> + }
> + addParameterAsHeader(paramName, xmlType, javaType,
> + parameterMode, headerMode);
> + }
> +
> /**
> -
> * Adds a parameter type as a soap:header.
> * @param paramName - Name of the parameter
> * @param xmlType - XML datatype of the parameter
> @@ -1409,7 +1433,13 @@ public class Call implements javax.xml.r
> Parameter p = (Parameter) parameters.list.get(j);
> // Get the QName representing the parameter type
> QName paramType = Utils.getXSIType(p);
> - this.addParameter( p.getQName(), paramType, modes[p.getMode()]);
> + ParameterMode mode = modes[p.getMode()];
> + if (p.isInHeader() || p.isOutHeader()) {
> + this.addParameterAsHeader( p.getQName(), paramType,
> + mode, mode);
> + } else {
> + this.addParameter( p.getQName(), paramType, mode);
> + }
> }
>
> Map faultMap = bEntry.getFaults();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira