由于好多人问我关于axis webservice实现provision接口的问题。
对于这些问题说明如下:
1、 把wsdl文件里的 elementFormDefault="unqualified" 和attributeFormDefault="unqualified"都改成qualified就不会出现xmlns=""的问题了。 附dsmp.wsdl文件 点击下载dsmp.wsdl 。
2、deploy.wsdd 和 undeploy.wsdd 两个文件 在com/monternet/www/dsmp/wsdl下,deploy.wsdd 用拉发布服务。
3、发布时候 java org.apache.axis.utils.Admin client|server deploy.wsdd 这里是简略写法,发布的时候应该分成两条命令执行。
java org.apache.axis.utils.Admin client deploy.wsdd
java org.apache.axis.utils.Admin server deploy.wsdd
此两条命令必须在axis的WEB-INF目录下运行(注意deploy.wsdd 文件路径信息),会在当前目录生成server-config.wsdd 和 client-config.wsdd两个文件。发布以后要重新启动tomcat或其他server
4、在这儿贴一下服务端的测试用代码(也就是 MaPortBindingImpl.java ):
5、最后贴一个Provision的模拟器
点击下载provisionclient
对于这些问题说明如下:
1、 把wsdl文件里的 elementFormDefault="unqualified" 和attributeFormDefault="unqualified"都改成qualified就不会出现xmlns=""的问题了。 附dsmp.wsdl文件 点击下载dsmp.wsdl 。
2、deploy.wsdd 和 undeploy.wsdd 两个文件 在com/monternet/www/dsmp/wsdl下,deploy.wsdd 用拉发布服务。
3、发布时候 java org.apache.axis.utils.Admin client|server deploy.wsdd 这里是简略写法,发布的时候应该分成两条命令执行。
java org.apache.axis.utils.Admin client deploy.wsdd
java org.apache.axis.utils.Admin server deploy.wsdd
此两条命令必须在axis的WEB-INF目录下运行(注意deploy.wsdd 文件路径信息),会在当前目录生成server-config.wsdd 和 client-config.wsdd两个文件。发布以后要重新启动tomcat或其他server
4、在这儿贴一下服务端的测试用代码(也就是 MaPortBindingImpl.java ):
package com.monternet.www.dsmp.wsdl;
import java.math.BigInteger;
import com.monternet.www.dsmp.schemas.SyncOrderRelationRespType;
public class MaPortBindingImpl implements com.monternet.www.dsmp.wsdl.MaPort {
public void syncOrderRelation(com.monternet.www.dsmp.schemas.
SyncOrderRelationReqType
syncOrderRelationInput,
java.lang.String transactionIDorderInput,
com.monternet.www.dsmp.schemas.holders.
SyncOrderRelationRespTypeHolder
syncOrderRelationOutput,
javax.xml.rpc.holders.StringHolder
transactionIDorderOut) throws java.rmi.
RemoteException {
// syncOrderRelationOutput.value = new com.monternet.www.dsmp.schemas.SyncOrderRelationRespType();
// transactionIDorderOut.value = new java.lang.String();
String ver = syncOrderRelationInput.getVersion();
String msgType = "SyncOrderRelationResp"; //syncOrderRelationInput.getMsgType();
SyncOrderRelationRespType resp = new SyncOrderRelationRespType();
resp.setVersion(ver);
resp.setMsgType(msgType);
/**
* 是否成功的标志
*
* 所有的业务处理都在这里
* String getHRet(SyncOrderRelationReqType req) 业务处理方法,可以采用多线程来处理
*/
String checkhret = "9001"; // getHRet(syncOrderRelationInput);
java.math.BigInteger hret = new java.math.BigInteger(checkhret);
resp.setHRet(hret);
syncOrderRelationOutput.value = resp; //new com.monternet.www.dsmp.schemas.SyncOrderRelationRespType();
//该消息编号
transactionIDorderOut.value = transactionIDorderInput; //new java.lang.String();
}
}
import java.math.BigInteger;
import com.monternet.www.dsmp.schemas.SyncOrderRelationRespType;
public class MaPortBindingImpl implements com.monternet.www.dsmp.wsdl.MaPort {
public void syncOrderRelation(com.monternet.www.dsmp.schemas.
SyncOrderRelationReqType
syncOrderRelationInput,
java.lang.String transactionIDorderInput,
com.monternet.www.dsmp.schemas.holders.
SyncOrderRelationRespTypeHolder
syncOrderRelationOutput,
javax.xml.rpc.holders.StringHolder
transactionIDorderOut) throws java.rmi.
RemoteException {
// syncOrderRelationOutput.value = new com.monternet.www.dsmp.schemas.SyncOrderRelationRespType();
// transactionIDorderOut.value = new java.lang.String();
String ver = syncOrderRelationInput.getVersion();
String msgType = "SyncOrderRelationResp"; //syncOrderRelationInput.getMsgType();
SyncOrderRelationRespType resp = new SyncOrderRelationRespType();
resp.setVersion(ver);
resp.setMsgType(msgType);
/**
* 是否成功的标志
*
* 所有的业务处理都在这里
* String getHRet(SyncOrderRelationReqType req) 业务处理方法,可以采用多线程来处理
*/
String checkhret = "9001"; // getHRet(syncOrderRelationInput);
java.math.BigInteger hret = new java.math.BigInteger(checkhret);
resp.setHRet(hret);
syncOrderRelationOutput.value = resp; //new com.monternet.www.dsmp.schemas.SyncOrderRelationRespType();
//该消息编号
transactionIDorderOut.value = transactionIDorderInput; //new java.lang.String();
}
}
5、最后贴一个Provision的模拟器
点击下载provisionclient