You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sc...@apache.org on 2006/10/25 16:38:29 UTC
svn commit: r467670 - in /webservices/axis2/trunk/java/modules/jaxws:
src/org/apache/axis2/jaxws/marshaller/
src/org/apache/axis2/jaxws/marshaller/impl/
src/org/apache/axis2/jaxws/message/
src/org/apache/axis2/jaxws/message/databinding/impl/ src/org/ap...
Author: scheu
Date: Wed Oct 25 07:38:28 2006
New Revision: 467670
URL: http://svn.apache.org/viewvc?view=rev&rev=467670
Log:
AXIS2-1450
Contributor: Nikhil Thaker
Updated MethodMarshaller Implementation to use ParameterDesc information
Added:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/BlockContext.java
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/MethodParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitBareMethodMarshallerImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/MethodMarshallerImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockFactoryImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/wrapper/impl/JAXBWrapperToolImpl.java
webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/doclitbare.wsdl
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/BareTests.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/MethodParameter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/MethodParameter.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/MethodParameter.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/MethodParameter.java Wed Oct 25 07:38:28 2006
@@ -18,6 +18,8 @@
import javax.jws.WebParam.Mode;
+import org.apache.axis2.jaxws.description.ParameterDescription;
+
/**
* Stores Method Parameter as Name and Value. Method Parameter can be an input Method Parameter or output Method parameter.
@@ -25,67 +27,60 @@
* output Method Parameter is a return parameter from a java Method.
*/
public class MethodParameter {
+ private ParameterDescription parameterDescription = null;
+ private String webResultName = null;
+ private String webResultTNS = null;
+ private Class webResultType = null;
+ private boolean isWebResult = false;
+ private Object value = null;
- private String name = null;
- private Object value = null;
- private Mode mode = null;
- private Class type = null;
- private Class actualType = null; //If parameter is a GenericType, this property stores the actual Type
- private boolean isHolder = false;
- private String targetNamespace = null;
- private boolean isHeader = false;
-
- public MethodParameter(String name, Object value, Mode mode) {
+ public MethodParameter(ParameterDescription parameterDescription, Object value){
super();
- this.name = name;
+ this.parameterDescription = parameterDescription;
this.value = value;
- this.mode = mode;
- }
- public MethodParameter(String name, Object value, Mode mode, Class type, Class actualType, boolean isHolder, String targetNamespace, boolean isHeader) {
- this(name,value,mode);
- this.type = type;
- this.isHolder = isHolder;
- this.actualType = actualType;
- this.targetNamespace = targetNamespace;
- this.isHeader = isHeader;
}
- public String getName() {
- return name;
- }
- public Object getValue() {
- return value;
+
+ public MethodParameter(String webResultName, String webResultTNS, Class webResultType, Object value) {
+ super();
+ this.parameterDescription = null;
+ this.webResultName = webResultName;
+ this.webResultTNS = webResultTNS;
+ this.webResultType = webResultType;
+ this.value = value;
+ this.isWebResult = true;
}
- public Mode getMode() {
- return mode;
+
+ public ParameterDescription getParameterDescription() {
+ return parameterDescription;
}
- public Class getType() {
- return type;
+ public void setParameterDescription(ParameterDescription parameterDescription) {
+ this.parameterDescription = parameterDescription;
}
- public void setType(Class type) {
- this.type = type;
+ public String getWebResultName() {
+ return webResultName;
}
- public Class getActualType() {
- return this.actualType;
+ public void setWebResultName(String webResultName) {
+ this.webResultName = webResultName;
}
- public void setActualType(Class actualType) {
- this.actualType = actualType;
+ public boolean isWebResult() {
+ return isWebResult;
}
- public boolean isHolder() {
- return isHolder;
+ public void setWebResult(boolean isWebResult) {
+ this.isWebResult = isWebResult;
}
- public void setHolder(boolean isHolder) {
- this.isHolder = isHolder;
+ public Object getValue() {
+ return value;
}
- public String getTargetNamespace() {
- return targetNamespace;
+ public String getWebResultTNS() {
+ return webResultTNS;
}
- public void setTargetNamespace(String targetNamespace) {
- this.targetNamespace = targetNamespace;
+ public void setWebResultTNS(String webResultTNS) {
+ this.webResultTNS = webResultTNS;
}
- public boolean isHeader() {
- return isHeader;
+ public Class getWebResultType() {
+ return webResultType;
}
- public void setHeader(boolean isHeader) {
- this.isHeader = isHeader;
+ public void setWebResultType(Class webResultType) {
+ this.webResultType = webResultType;
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitBareMethodMarshallerImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitBareMethodMarshallerImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitBareMethodMarshallerImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitBareMethodMarshallerImpl.java Wed Oct 25 07:38:28 2006
@@ -27,6 +27,7 @@
import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
import org.apache.axis2.jaxws.description.OperationDescription;
+import org.apache.axis2.jaxws.description.ParameterDescription;
import org.apache.axis2.jaxws.description.ServiceDescription;
import org.apache.axis2.jaxws.i18n.Messages;
import org.apache.axis2.jaxws.marshaller.DocLitBareMethodMarshaller;
@@ -67,7 +68,8 @@
int index =0;
//Remove everything except holders from method parameters and input arguments.
for(MethodParameter mp: mps){
- if(!mp.isHolder()){
+ ParameterDescription pd = mp.getParameterDescription();
+ if(!pd.isHolderType()){
holdermps.remove(mp);
holderArgs.remove(mp.getValue());
}
@@ -121,8 +123,8 @@
log.debug("reading input method parameters");
}
for(MethodParameter mp:mps){
-
- if(mp.isHolder()){
+ ParameterDescription pd = mp.getParameterDescription();
+ if(pd.isHolderType()){
Object holderObject = mp.getValue();
objectList.add(holderObject);
}
@@ -152,7 +154,8 @@
//Remove everything except holders
for(MethodParameter mp: mps){
- if(!mp.isHolder()){
+ ParameterDescription pd = mp.getParameterDescription();
+ if(!pd.isHolderType()){
holdersNreturnObject.remove(mp);
}
}
@@ -169,7 +172,7 @@
}
else if(holdersNreturnObject.size() == 0 && !wrapperClazz.getName().equals("void")){
//No holders but a return type example --> public ReturnType someMethod()
- MethodParameter mp = new MethodParameter(wrapperClazzName,returnObject,null, wrapperClazz, wrapperClazz, false, wrapperTNS, false);
+ MethodParameter mp = new MethodParameter(wrapperClazzName,wrapperTNS, wrapperClazz, returnObject);
holdersNreturnObject.add(mp);
message = createMessage(holdersNreturnObject);
@@ -184,7 +187,7 @@
//Note that SEI implementation will wrap return type in a holder if method has a return type and input param as holder.
//WSGen and WsImport Generate Holders with return type as one of the Holder JAXBObject property, if wsdl schema forces a holder and a return type.
- MethodParameter mp = new MethodParameter(wrapperClazzName,returnObject,null, wrapperClazz, wrapperClazz, false, wrapperTNS, false);
+ MethodParameter mp = new MethodParameter(wrapperClazzName,wrapperTNS, wrapperClazz, returnObject);
holdersNreturnObject.add(mp);
message = createMessage(holdersNreturnObject);
@@ -206,7 +209,8 @@
if(mps.size()> SIZE){
int numberOfBodyPart =0;
for(MethodParameter mp:mps){
- if(!mp.isHeader()){
+ ParameterDescription pd = mp.getParameterDescription();
+ if(!pd.getWebParamHeader()){
numberOfBodyPart++;
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java Wed Oct 25 07:38:28 2006
@@ -117,6 +117,7 @@
public Message marshalResponse(Object returnObject, Object[] holderObjects)throws ClassNotFoundException, JAXBException, MessageException, JAXBWrapperException, XMLStreamException, InstantiationException, IllegalAccessException {
Class wrapperClazz = null;
String wrapperClazzName = operationDesc.getResponseWrapperClassName();
+ String wrapperXMLElementName = operationDesc.getRequestWrapperLocalName();
String wrapperTNS = operationDesc.getResponseWrapperTargetNamespace();
String webResult = operationDesc.getWebResultName();
//TODO Move this to Operation Description.
@@ -159,7 +160,7 @@
Object wrapper = wrapperTool.wrap(wrapperClazz,
wrapperClazzName, mps);
- Message message = createMessage(wrapper, wrapperClazz, wrapperClazzName, wrapperTNS);
+ Message message = createMessage(wrapper, wrapperClazz, wrapperXMLElementName, wrapperTNS);
return message;
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/MethodMarshallerImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/MethodMarshallerImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/MethodMarshallerImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/MethodMarshallerImpl.java Wed Oct 25 07:38:28 2006
@@ -29,6 +29,7 @@
import java.util.concurrent.Future;
import javax.jws.WebParam.Mode;
+import javax.management.openmbean.SimpleType;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
@@ -48,6 +49,7 @@
import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
import org.apache.axis2.jaxws.description.OperationDescription;
+import org.apache.axis2.jaxws.description.ParameterDescription;
import org.apache.axis2.jaxws.description.ServiceDescription;
import org.apache.axis2.jaxws.i18n.Messages;
import org.apache.axis2.jaxws.marshaller.MethodMarshaller;
@@ -58,6 +60,7 @@
import org.apache.axis2.jaxws.message.Protocol;
import org.apache.axis2.jaxws.message.XMLFault;
import org.apache.axis2.jaxws.message.XMLFaultReason;
+import org.apache.axis2.jaxws.message.databinding.impl.BlockContext;
import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory;
import org.apache.axis2.jaxws.message.factory.MessageFactory;
import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;
@@ -69,8 +72,6 @@
import org.apache.commons.logging.LogFactory;
public abstract class MethodMarshallerImpl implements MethodMarshaller {
-
- private static String DEFAULT_ARG="arg";
private static QName SOAPENV_QNAME = new QName("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
private static Log log = LogFactory.getLog(MethodMarshallerImpl.class);
protected ServiceDescription serviceDesc = null;
@@ -179,42 +180,38 @@
protected ArrayList<MethodParameter> toOutputMethodParameter(Object webResultValue){
ArrayList<MethodParameter> mps = new ArrayList<MethodParameter>();
- String webResult = operationDesc.getWebResultName();
- MethodParameter mp = new MethodParameter(webResult, webResultValue, null);
+ if(webResultValue == null){
+ return mps;
+ }
+ String webResultName = operationDesc.getWebResultName();
+ String webResultTNS = operationDesc.getWebResultTargetNamespace();
+ Class webResultClass = null;
+ if(webResultValue !=null){
+ webResultClass = webResultValue.getClass();
+ }
+ MethodParameter mp = new MethodParameter(webResultName, webResultTNS, webResultClass, webResultValue);
mps.add(mp);
return mps;
}
protected ArrayList<MethodParameter> toOutputMethodParameter(Object webResultObject, Object[] holderObjects)throws IllegalAccessException, InstantiationException, ClassNotFoundException{
- //Get all names of input parameters
- ArrayList<String> paramNames = new ArrayList<String>();
- paramNames =toArrayList(operationDesc.getWebParamNames());
-
- //Get all modes for params
- ArrayList<Mode> paramMode = new ArrayList<Mode>();
- paramMode = toArrayList(operationDesc.getWebParamModes());
-
- Method seiMethod = operationDesc.getSEIMethod();
- Class[] types = seiMethod.getParameterTypes();
- ArrayList<Class> paramTypes = toArrayList(types);
- ArrayList<Class> actualTypes = getInputTypes();
-
- for(int i =0;i<types.length; i++){
- if(!(types[i].isAssignableFrom(Holder.class))){
- paramNames.remove(i);
- paramMode.remove(i);
- paramTypes.remove(i);
+ ParameterDescription[] paramDescs = operationDesc.getParameterDescriptions();
+ ArrayList<ParameterDescription> pds = new ArrayList<ParameterDescription>();
+ pds = toArrayList(paramDescs);
+ // Remove all non holder meta data.
+ for (int index = 0; index < paramDescs.length; index++) {
+ ParameterDescription paramDesc = paramDescs[index];
+ if (!(paramDesc.isHolderType())) {
+ pds.remove(index);
}
}
ArrayList<Object> paramValues = toArrayList(holderObjects);
- ArrayList<MethodParameter> mps = createMethodParameters(paramNames, paramValues, paramMode, paramTypes, actualTypes);
+ ArrayList<MethodParameter> mps = createMethodParameters(pds.toArray(new ParameterDescription[0]), paramValues);
if(webResultObject!=null){
- MethodParameter outputResult = new MethodParameter(operationDesc.getWebResultName(), webResultObject, null);
+ MethodParameter outputResult = new MethodParameter(operationDesc.getWebResultName(), operationDesc.getWebResultTargetNamespace(), webResultObject.getClass(), webResultObject);
mps.add(outputResult);
}
-
- //lets create name value pair.
return mps;
}
@@ -225,8 +222,7 @@
return mps;
}
ArrayList<String> webParam = toArrayList(operationDesc.getWebParamNames());
- ArrayList<Mode> modes = toArrayList(operationDesc.getWebParamModes());
-
+
if (log.isDebugEnabled()) {
log.debug("Attempting to unwrap object from WrapperClazz");
}
@@ -251,86 +247,107 @@
return mps;
}
- //Get all names of input parameters
- ArrayList<String> paramNames = new ArrayList<String>();
- paramNames =toArrayList(operationDesc.getWebParamNames());
- //Get all the objects of input parameters
- ArrayList<Object> paramValues = new ArrayList<Object>();
- paramValues = toArrayList(objects);
- //Get all modes for params
- ArrayList<Mode> paramMode = new ArrayList<Mode>();
- paramMode = toArrayList(operationDesc.getWebParamModes());
-
- Method seiMethod = operationDesc.getSEIMethod();
+ ParameterDescription[] paramDescs = operationDesc.getParameterDescriptions();
- Class[] clazz = seiMethod.getParameterTypes();
- ArrayList<Class> paramTypes = toArrayList(clazz);
-
- ArrayList<Class> actualTypes = getInputTypes();
- int i =0;
-
- //if no webParam defined then lets get default names.
- if(paramNames.size() == 0 && paramTypes.size()>0){
- while(i< paramTypes.size()){
- paramNames.add(DEFAULT_ARG + i++);
- }
+ if (paramDescs.length != objects.length) {
+ throw ExceptionFactory.makeWebServiceException(Messages
+ .getMessage("InvalidWebParams"));
}
- if(paramNames.size() != paramValues.size()){
- throw ExceptionFactory.makeWebServiceException(Messages.getMessage("InvalidWebParams"));
+ ArrayList<Object> paramValues = new ArrayList<Object>();
+ paramValues = toArrayList(objects);
+ if (log.isDebugEnabled()) {
+ log.debug("Attempting to create Method Parameters");
}
- //lets create name value pair.
- mps = createMethodParameters(paramNames, paramValues, paramMode, paramTypes, actualTypes);
-
+ mps = createMethodParameters(paramDescs, paramValues);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Method Parameters created");
+ }
+
return mps;
}
protected ArrayList<MethodParameter> toInputMethodParameter(Message message)throws IllegalAccessException, InstantiationException, ClassNotFoundException, MessageException, XMLStreamException, JAXBException{
ArrayList<MethodParameter> mps = new ArrayList<MethodParameter>();
- if(message == null){
- return null;
- }
- ArrayList<String> paramNames = new ArrayList<String>();
- paramNames =toArrayList(operationDesc.getWebParamNames());
-
- //Get all modes for params
- ArrayList<Mode> paramMode = new ArrayList<Mode>();
- paramMode = toArrayList(operationDesc.getWebParamModes());
-
- Method seiMethod = operationDesc.getSEIMethod();
+ if(message == null){
+ return null;
+ }
+ ParameterDescription[] paramDescs = operationDesc.getParameterDescriptions();
- Class[] clazz = seiMethod.getParameterTypes();
- ArrayList<Class> paramTypes = toArrayList(clazz);
-
- ArrayList<Class> actualTypes = getInputTypes();
-
- int i =0;
- //if no webParam defined then lets get default names.
- if(paramNames.size() == 0 && paramTypes.size()>0){
- while(i< paramTypes.size()){
- paramNames.add(DEFAULT_ARG + i++);
- }
- }
- i =0;
ArrayList<Object> paramValues = new ArrayList<Object>();
- for(String paramName:paramNames){
- String paramTNS = operationDesc.getWebParamTargetNamespace(paramName);
- boolean isHeader = operationDesc.isWebParamHeader(paramName);
+ for (int index = 0; index < paramDescs.length; index++) {
+ ParameterDescription paramDesc = paramDescs[index];
+ String paramName = paramDesc.getWebParamName();
+ String paramTNS = paramDesc.getWebParamTargetNamespace();
+ boolean isHeader = paramDesc.getWebParamHeader();
+ Class actualType = paramDesc.getParameterActualType();
Object bo = null;
if(isHeader){
- bo = createBOFromHeaderBlock(actualTypes.get(i), message, paramTNS, paramName);
+ bo = createBOFromHeaderBlock(actualType, message, paramTNS, paramName);
}
else{
- bo = createBOFromBodyBlock(actualTypes.get(i),message);
+ bo = createBOFromBodyBlock(actualType,message);
}
paramValues.add(bo);
- i++;
}
- //lets create name value pair.
- mps = createMethodParameters(paramNames, paramValues, paramMode, paramTypes, actualTypes);
+ mps = createMethodParameters(paramDescs, paramValues);
return mps;
}
-
+ protected ArrayList<MethodParameter> createMethodParameters(
+ ParameterDescription[] paramDescs, ArrayList<Object> paramValues)
+ throws IllegalAccessException, InstantiationException,
+ ClassNotFoundException {
+ ArrayList<MethodParameter> mps = new ArrayList<MethodParameter>();
+ int index = 0;
+ for (Object paramValue : paramValues) {
+ ParameterDescription paramDesc = paramDescs[index];
+ Class paramType = paramDesc.getParameterType();
+ Mode paramMode = paramDesc.getWebParamMode();
+ boolean isHolderType = paramDesc.isHolderType();
+ MethodParameter mp = null;
+ // If call is Async call then lets filter AsyncHandler object name
+ // and value;
+ if (!isParamAsyncHandler(paramDesc.getWebParamName(), paramValue)) {
+ if (paramType != null) {
+ // Identify Holders and get Holder Values, this if condition
+ // will mostly execute during client side call
+ if (paramValue != null && isHolder(paramValue)
+ && isHolderType) {
+ Object holderValue = getHolderValue(paramMode,
+ paramValue);
+ mp = new MethodParameter(paramDesc, holderValue);
+ }
+ // Identify that param value is not Holders however if the
+ // method parameter is holder type and create Holder, this
+ // will mostly be called during server side call
+ else if (paramValue != null && !isHolder(paramValue)
+ && isHolderType) {
+ Holder<Object> holder = createHolder(paramType,
+ paramValue);
+ mp = new MethodParameter(paramDesc, holder);
+ } else {
+ mp = new MethodParameter(paramDesc, paramValue);
+ }
+ }
+ if (paramType == null) {
+ if (isHolder(paramValue)) {
+ Object holderValue = getHolderValue(paramMode,
+ paramValue);
+ mp = new MethodParameter(paramDesc, holderValue);
+ } else {
+ mp = new MethodParameter(paramDesc, paramValues);
+ }
+ }
+ mps.add(mp);
+ }
+
+ index++;
+ }
+ return mps;
+
+ }
+
protected ArrayList<Class> getInputTypes(){
Method seiMethod = operationDesc.getSEIMethod();
ArrayList<Class> paramTypes = new ArrayList<Class>();
@@ -384,14 +401,15 @@
else{
//Create JAXBElement then use that to create JAXBBlock.
Class objectType = jaxbObject.getClass();
- String xmlName = readXMLTypeName(objectType);
+
JAXBElement<Object> element = null;
- if(xmlName !=null){
+ if (name != null) {
+ element = new JAXBElement<Object>(new QName(targetNamespace,
+ name), objectType, jaxbObject);
+ } else {
+ String xmlName = readXMLTypeName(objectType);
element = new JAXBElement<Object>(new QName(targetNamespace, xmlName), objectType, jaxbObject);
}
- else{
- element = new JAXBElement<Object>(new QName(targetNamespace, name), objectType, jaxbObject);
- }
JAXBBlockFactory factory = (JAXBBlockFactory)FactoryRegistry.getFactory(JAXBBlockFactory.class);
return factory.createFrom(element,context ,null);
@@ -469,73 +487,9 @@
return returnType;
}
- protected ArrayList<MethodParameter> createMethodParameters(ArrayList<String> paramNames, ArrayList<Object>paramValues, ArrayList<Mode> paramModes, ArrayList<Class> paramTypes, ArrayList<Class> actualTypes) throws IllegalAccessException, InstantiationException, ClassNotFoundException{
- ArrayList<MethodParameter> mps = new ArrayList<MethodParameter>();
- int i=0;
- for(String paramName:paramNames){
- Object paramValue = paramValues.get(i);
- String paramTNS = operationDesc.getWebParamTargetNamespace(paramName);
- boolean isHeader = operationDesc.isWebParamHeader(paramName);
- //initialize to default value.
- Mode paramMode = Mode.IN;
- if(paramModes !=null && paramModes.size() >0){
- paramMode =paramModes.get(i);
- }
- Class paramType = null;
- Class actualType = null;
- if(paramTypes !=null){
- paramType = paramTypes.get(i);
- }
- if(actualTypes!=null){
- actualType = actualTypes.get(i);
- }
- MethodParameter mp = null;
- //If call is Async call then lets filter AsyncHandler object name and value;
- if(!isParamAsyncHandler(paramName, paramValue)){
-
- if(paramType !=null){
- //Identify Holders and get Holder Values, this if condition will mostly execute during client side call
- if(isHolder(paramValue) && isHolder(paramType)){
- Object holderValue = getHolderValue(paramMode, paramValue);
- mp = new MethodParameter(paramName, holderValue, paramMode, paramType, actualType, true, paramTNS, isHeader);
-
- }
- //Identify that param value is not Holders however if the method parameter is holder type and create Holder, this will mostly be called during server side call
- else if(!isHolder(paramValue) && isHolder(paramType)){
- Holder<Object> holder = createHolder(paramType, paramValue);
- mp=new MethodParameter(paramName, holder, paramMode, paramType, actualType, true, paramTNS, isHeader);
- }
- else{
- mp = new MethodParameter(paramName, paramValue, paramMode, paramType, actualType, false, paramTNS, isHeader);
- }
- }
- if(paramType == null){
- if(isHolder(paramValue)){
- Object holderValue = getHolderValue(paramMode, paramValue);
- mp = new MethodParameter(paramName, holderValue, paramMode);
- mp.setHolder(true);
- mp.setTargetNamespace(paramTNS);
- mp.setHeader(isHeader);
- }
- else{
- mp = new MethodParameter(paramName, paramValues, paramMode);
- mp.setHolder(false);
- mp.setTargetNamespace(paramTNS);
- mp.setHeader(isHeader);
- }
- }
- mps.add(mp);
- }
-
- i++;
- }
- return mps;
- }
+
private boolean isParamAsyncHandler(String name, Object value){
- //TODO I would like to check the name of the parameter to "asyncHandler" As per the JAX-WS specification
- //However the RI tooling has a bug where it generates partName="asyncHandler" for doc/lit bare case instead of name="asyncHandler".
- //Once fixed we can also check for name but for now this will work
if(value!=null && value instanceof AsyncHandler){
if(log.isDebugEnabled()){
log.debug("Parameter is AsycnHandler Object");
@@ -589,43 +543,53 @@
protected Message createMessage(ArrayList<MethodParameter> mps) throws JAXBException, MessageException, XMLStreamException{
Block block = null;
- Object requestObject = null;
- String requestObjectName = null;
- String requestTNS = null;
- Class requestObjectType = null;
+ Object object = null;
+ String objectName = null;
+ String objectTNS = null;
+ Class objectType = null;
boolean isHeader =false;
MessageFactory mf = (MessageFactory)FactoryRegistry.getFactory(MessageFactory.class);
Message m = mf.create(protocol);
for(MethodParameter mp : mps){
- requestObject = mp.getValue();
- requestObjectName = mp.getName();
- requestObjectType = mp.getActualType();
- requestTNS = mp.getTargetNamespace();
- isHeader = mp.isHeader();
- if(!isHeader && requestObject == null){
+
+ if (!mp.isWebResult()) {
+ ParameterDescription pd = mp.getParameterDescription();
+ object = mp.getValue();
+ objectName = pd.getWebParamName();
+ objectType = pd.getParameterActualType();
+ objectTNS = pd.getWebParamTargetNamespace();
+ isHeader = pd.getWebParamHeader();
+ } else {
+ object = mp.getValue();
+ objectName = mp.getWebResultName();
+ objectType = mp.getWebResultType();
+ objectTNS = mp.getWebResultTNS();
+ isHeader = false;
+ }
+ if (!isHeader && object == null) {
if (log.isDebugEnabled()) {
log.debug("Method Input parameter for NON Wrapped Request cannot be null");
}
throw ExceptionFactory.makeWebServiceException(Messages.getMessage("DocLitProxyHandlerErr2"));
}
- JAXBContext ctx = createJAXBContext(requestObjectType);
+ JAXBContext ctx = createJAXBContext(objectType);
if (log.isDebugEnabled()) {
log.debug("Attempting to create Block");
}
- if(isXmlRootElementDefined(requestObjectType)){
- block = createJAXBBlock(requestObject, ctx);
+ if(isXmlRootElementDefined(objectType)){
+ block = createJAXBBlock(object, ctx);
}
else{
- block = createJAXBBlock(requestObjectName, requestObject, ctx, requestTNS);
+ block = createJAXBBlock(objectName, object, ctx, objectTNS);
}
if (log.isDebugEnabled()) {
log.debug("JAXBBlock Created");
}
if(isHeader){
- m.setHeaderBlock(requestTNS, requestObjectName, block);
+ m.setHeaderBlock(objectTNS, objectName, block);
if (log.isDebugEnabled()) {
log.debug("Header Block Created");
}
@@ -683,7 +647,7 @@
// out of the Message
JAXBBlockFactory factory = (JAXBBlockFactory)FactoryRegistry.getFactory(JAXBBlockFactory.class);
Block block = message.getHeaderBlock(targetNamespace, localPart, ctx, factory);
- return block.getBusinessObject(false);
+ return createBusinessObject(jaxbClazz, block);
}
protected Object createBOFromBodyBlock(Class jaxbClazz, Message message) throws JAXBException, MessageException, XMLStreamException{
@@ -698,33 +662,47 @@
JAXBBlockFactory factory = (JAXBBlockFactory)FactoryRegistry.getFactory(JAXBBlockFactory.class);
Block block = message.getBodyBlock(0, ctx, factory);
- try{
- return block.getBusinessObject(false);
- }catch(Exception e){
- //FIXME: this is the bare case where child of body is not a method but a primitive data type. Reader from Block is throwing exception.
- block = message.getBodyBlock(0, ctx,factory);
- OMElement om = block.getOMElement();
-
- XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
-
- Unmarshaller u = ctx.createUnmarshaller();
- Reader inputReader = new InputStreamReader(new ByteArrayInputStream(om.toString().getBytes()));
- XMLStreamReader sr = xmlFactory.createXMLStreamReader(inputReader);
- JAXBElement o =u.unmarshal(sr, jaxbClazz);
- return o.getValue();
-
- }
+ return createBusinessObject(jaxbClazz, block);
+ }
+
+ protected Object createBusinessObject(Class jaxbClazz, Block block)
+ throws JAXBException, MessageException, XMLStreamException {
+ if (jaxbClazz.isPrimitive() || isSimpleType(jaxbClazz)
+ || !isXmlRootElementDefined(jaxbClazz)) {
+ BlockContext bc = new BlockContext();
+ bc.setDeclareType(jaxbClazz);
+ block.setBlockContext(bc);
+ }
+ return block.getBusinessObject(true);
+ }
+
+ protected Object createFaultBusinessObject(Class jaxbClazz, Block block)
+ throws JAXBException, MessageException, XMLStreamException {
+ JAXBContext ctx = createJAXBContext(jaxbClazz);
+ OMElement om = block.getOMElement();
+
+ XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
+
+ Unmarshaller u = ctx.createUnmarshaller();
+ Reader inputReader = new InputStreamReader(new ByteArrayInputStream(om
+ .toString().getBytes()));
+ XMLStreamReader sr = xmlFactory.createXMLStreamReader(inputReader);
+ JAXBElement o = u.unmarshal(sr, jaxbClazz);
+ return o.getValue();
+
}
protected void createResponseHolders(ArrayList<MethodParameter> mps, ArrayList<Object> inputArgHolders, Message message)throws JAXBException, MessageException, XMLStreamException{
Object bo = null;
int index = 0;
for(MethodParameter mp:mps){
- if(mp.isHeader() && mp.isHolder()){
- bo = createBOFromHeaderBlock(mp.getActualType(),message, mp.getTargetNamespace(), mp.getName());
-
+ ParameterDescription pd = mp.getParameterDescription();
+ if (pd.getWebParamHeader() && pd.isHolderType()) {
+ bo = createBOFromHeaderBlock(pd.getParameterActualType(),
+ message, pd.getWebParamTargetNamespace(), pd
+ .getWebParamName());
}
- else if(!mp.isHeader() && mp.isHolder()){
- bo = createBOFromBodyBlock(mp.getActualType(), message);
+ else if(!pd.getWebParamHeader() && pd.isHolderType()){
+ bo = createBOFromBodyBlock(pd.getParameterActualType(), message);
}
try{
Holder inputArgHolder = (Holder)inputArgHolders.get(index);
@@ -737,19 +715,7 @@
}
-
- protected Object createFaultBusinessObject(Class jaxbClazz, Block block) throws JAXBException, MessageException, XMLStreamException {
- JAXBContext ctx = createJAXBContext(jaxbClazz);
- OMElement om = block.getOMElement();
-
- XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
-
- Unmarshaller u = ctx.createUnmarshaller();
- Reader inputReader = new InputStreamReader(new ByteArrayInputStream(om.toString().getBytes()));
- XMLStreamReader sr = xmlFactory.createXMLStreamReader(inputReader);
- JAXBElement o =u.unmarshal(sr, jaxbClazz);
- return o.getValue();
- }
+
protected void createResponseHolders(Object bo, Object[] inputArgs, boolean isBare)throws JAXBWrapperException, InstantiationException, ClassNotFoundException, IllegalAccessException{
if(inputArgs == null){
@@ -779,7 +745,8 @@
MethodParameter[] mpArray = mps.toArray(new MethodParameter[0]);
for(MethodParameter mp:mpArray){
- if(!mp.isHolder()){
+ ParameterDescription pd = mp.getParameterDescription();
+ if(!pd.isHolderType()){
mps.remove(mp);
}
}
@@ -797,6 +764,16 @@
}
}
+
+ protected boolean isSimpleType(Class clazz) {
+ String[] allOpenTypes = SimpleType.ALLOWED_CLASSNAMES;
+ for (String openType : allOpenTypes) {
+ if (clazz.getName().equals(openType)) {
+ return true;
+ }
+ }
+ return false;
+ }
protected Object findProperty(String propertyName, Object jaxbObject)throws JAXBWrapperException{
JAXBWrapperTool wrapTool = new JAXBWrapperToolImpl();
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java Wed Oct 25 07:38:28 2006
@@ -23,6 +23,7 @@
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.message.databinding.impl.BlockContext;
import org.apache.axis2.jaxws.message.factory.BlockFactory;
/**
@@ -139,5 +140,19 @@
* Set the XMLPart that will contain this Block.
*/
public void setParent(XMLPart p);
+ /**
+ * @returns the Block Context, BlockContext stores the context information of the Block. Example, this holds something that the Block would need in order to
+ * serialize or deserialize correctly.
+ *
+ */
+ public BlockContext getBlockContext();
+
+ /**
+ * sets the block context, BlockContext stores the context information of the Block. Example, this holds something that the Block would need in order to
+ * serialize or deserialize correctly further example is JAXBBlock store the declared Type that it can later use to unmarshal a Message if it holds
+ * a primitive type.
+ * @param blockContext
+ */
+ public void setBlockContext(BlockContext blockContext);
}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/BlockContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/BlockContext.java?view=auto&rev=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/BlockContext.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/BlockContext.java Wed Oct 25 07:38:28 2006
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.jaxws.message.databinding.impl;
+
+/*
+ * JAXBBlockContext stores the context information of the Block. Example, this holds something that the Block would need in order to
+ * serialize or deserialize correctly.
+ */
+
+public class BlockContext {
+
+ Class declareType = null;
+ public BlockContext() {
+ super();
+
+ }
+ public Class getDeclareType() {
+ return declareType;
+ }
+ public void setDeclareType(Class declareType) {
+ this.declareType = declareType;
+ }
+
+
+}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockFactoryImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockFactoryImpl.java Wed Oct 25 07:38:28 2006
@@ -29,6 +29,7 @@
* Creates a JAXBBlock
*/
public class JAXBBlockFactoryImpl extends BlockFactoryImpl implements JAXBBlockFactory {
+
/**
* Default Constructor required for Factory
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java Wed Oct 25 07:38:28 2006
@@ -20,6 +20,7 @@
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.JAXBIntrospector;
import javax.xml.bind.Marshaller;
@@ -40,6 +41,7 @@
import org.apache.axis2.jaxws.message.attachments.JAXBAttachmentUnmarshaller;
import org.apache.axis2.jaxws.message.databinding.JAXBBlock;
import org.apache.axis2.jaxws.message.factory.BlockFactory;
+import org.apache.axis2.jaxws.message.impl.BlockFactoryImpl;
import org.apache.axis2.jaxws.message.impl.BlockImpl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -88,6 +90,8 @@
JAXBContext jc = (JAXBContext) busContext;
Unmarshaller u = jc.createUnmarshaller();
+ BlockContext blockContext = getBlockContext();
+
// If MTOM is enabled, add in the AttachmentUnmarshaller
if (isMTOMEnabled()) {
if (log.isDebugEnabled())
@@ -100,10 +104,20 @@
aum.setMessage(msg);
u.setAttachmentUnmarshaller(aum);
}
-
- Object jaxb = u.unmarshal(reader);
- setQName(getQName(jaxb, jc));
- return jaxb;
+ //Read block context and determine if a declaredType is defined. If yes, then create JAXBElement and use that to create JAXB Object.
+ Class declaredType = null;
+ if(blockContext !=null){
+ declaredType = blockContext.getDeclareType();
+ }
+ if(declaredType == null){
+ Object jaxb = u.unmarshal(reader);
+ setQName(getQName(jaxb, jc));
+ return jaxb;
+ }else{
+ JAXBElement jaxbElement = u.unmarshal(reader, declaredType);
+ Object jaxb = jaxbElement.getValue();
+ return jaxb;
+ }
} catch(JAXBException je) {
throw ExceptionFactory.makeMessageException(je);
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java Wed Oct 25 07:38:28 2006
@@ -31,7 +31,7 @@
* Abstract Base Class for the Block Factories
*/
public abstract class BlockFactoryImpl implements BlockFactory {
-
+
public BlockFactoryImpl() {
super();
}
@@ -66,6 +66,8 @@
OMElement omElement = builder.getDocumentElement();
return createFrom(omElement, context, qName);
}
+
+
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java Wed Oct 25 07:38:28 2006
@@ -34,6 +34,7 @@
import org.apache.axis2.jaxws.message.Block;
import org.apache.axis2.jaxws.message.MessageException;
import org.apache.axis2.jaxws.message.XMLPart;
+import org.apache.axis2.jaxws.message.databinding.impl.BlockContext;
import org.apache.axis2.jaxws.message.factory.BlockFactory;
import org.apache.axis2.jaxws.message.util.Reader2Writer;
@@ -65,6 +66,7 @@
private BlockFactory factory;
private boolean consumed = false;
private XMLPart parent;
+ private BlockContext blockContext;
/**
* A Block has the following components
@@ -99,6 +101,14 @@
*/
public BlockFactory getBlockFactory() {
return factory;
+ }
+
+ public BlockContext getBlockContext() {
+ return blockContext;
+ }
+
+ public void setBlockContext(BlockContext blockContext) {
+ this.blockContext = blockContext;
}
/* (non-Javadoc)
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/wrapper/impl/JAXBWrapperToolImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/wrapper/impl/JAXBWrapperToolImpl.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/wrapper/impl/JAXBWrapperToolImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/wrapper/impl/JAXBWrapperToolImpl.java Wed Oct 25 07:38:28 2006
@@ -36,6 +36,7 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.namespace.QName;
+import org.apache.axis2.jaxws.description.ParameterDescription;
import org.apache.axis2.jaxws.i18n.Messages;
import org.apache.axis2.jaxws.marshaller.MethodParameter;
import org.apache.axis2.jaxws.wrapper.JAXBWrapperTool;
@@ -123,7 +124,13 @@
ArrayList<String> nameList = new ArrayList<String>();
Map<String, Object> objectList = new WeakHashMap<String, Object>();
for(MethodParameter mp:mps){
- String name = mp.getName();
+ ParameterDescription pd = mp.getParameterDescription();
+ String name = null;
+ if(!mp.isWebResult()){
+ name = pd.getWebParamName();
+ }else{
+ name = mp.getWebResultName();
+ }
Object object = mp.getValue();
nameList.add(name);
Modified: webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/doclitbare.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/doclitbare.wsdl?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/doclitbare.wsdl (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/doclitbare.wsdl Wed Oct 25 07:38:28 2006
@@ -117,7 +117,7 @@
</wsdl:operation>
<wsdl:operation name="twoWaySimple">
- <soap:operation soapAction="http://doclitbare.sample.test.org/twoWaySimple" />
+ <soap:operation soapAction="twoWaySimple" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/BareTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/BareTests.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/BareTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/BareTests.java Wed Oct 25 07:38:28 2006
@@ -22,11 +22,10 @@
BareDocLitService service = new BareDocLitService();
DocLitBarePortType proxy = service.getBareDocLitPort();
BindingProvider p = (BindingProvider) proxy;
- p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:7777/axis2/services/BareDocLitService");
- /*p.getRequestContext().put(
- BindingProvider.SOAPACTION_URI_PROPERTY, new Boolean(true));
p.getRequestContext().put(
- BindingProvider.SOAPACTION_URI_PROPERTY, "twoWaySimple");*/
+ BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
+ p.getRequestContext().put(
+ BindingProvider.SOAPACTION_URI_PROPERTY, "twoWaySimple");
String response = proxy.twoWaySimple(10);
System.out.println("Sync Response =" + response);
System.out.println("------------------------------");
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java?view=diff&rev=467670&r1=467669&r2=467670
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java Wed Oct 25 07:38:28 2006
@@ -23,7 +23,7 @@
private final static URL BAREDOCLITSERVICE_WSDL_LOCATION;
- private static String wsdlLocation="/modules/jaxws/test/org/apache/axis2/jaxws/sample/doclitbare/META-INF/doclitbare.wsdl";
+ private static String wsdlLocation="/test/org/apache/axis2/jaxws/sample/doclitbare/META-INF/doclitbare.wsdl";
static {
URL url = null;
try {
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org