
(图一)
项目组要求使用 webservice的开发与spring相互融合在一起,
?
使用java优先的方法测试成功了,
项目地址为
C:/Documents and Settings/wangxifeng/Workspaces/MyEclipse 8.5/webservicehelloworld。
?
---------------------------------------------------------
?
但是项目组要求WSDL契约优先的方式来开发服务端代码。
?
发现Spring ws 生成特别复杂,于是转用了 在eclipse下面进行开发,eclipse下已经集成了Axis框架,使用这种框架开发测试成功了。
项目地址为:D:/wxf/WebServerTest3
?
在操作过程中需要特别注意的事项包括
?
如图一所示部分,按照默认进行一步一步的操作,不可以进行“start service”任何修改。
不要设置什么支持Maven操作,因为配置不正确造成无法实现。
?
?
生成测试客户端代码地址位于: D:/wxf/Client1
?
核心代码是
?
import java.rmi.RemoteException;
import java.util.Calendar;
import javax.xml.rpc.holders.BooleanHolder;
import javax.xml.rpc.holders.LongHolder;
import javax.xml.rpc.holders.LongWrapperHolder;
import javax.xml.rpc.holders.StringHolder;
import javax.xml.rpc.holders.IntHolder;
import jx.chinatelecom.com.VotePartnerInf.holders.ActivityInfoTypeArrayHolder;
import jx.chinatelecom.com.VotePartnerInf.VotePartnerInfProxy;
import jx.chinatelecom.com.VotePartnerInf.VotePartnerInf_Service;
import jx.chinatelecom.com.VotePartnerInf.VotePartnerInf_ServiceLocator;
import jx.chinatelecom.com.VotePartnerInf.VotePartnerInfSOAPStub;
import jx.chinatelecom.com.VotePartnerInf.VotePartnerInf_PortType;
public class RemoteTest {
?public static void main(String[] args) throws Exception
?{
??IntHolder resultCode = new IntHolder(0);
??StringHolder errorMsg = new StringHolder();
??ActivityInfoTypeArrayHolder activityInfo = new ActivityInfoTypeArrayHolder();
??VotePartnerInf_Service service = new VotePartnerInf_ServiceLocator();
??
??VotePartnerInf_PortType port =service.getVotePartnerInfSOAP();
??//port.queryActivityList("wangxifeng","222221","青年",resultCode,errorMsg,activityInfo);
??
?? System.out.println("55555555");
??????? System.out.println("errorMsg=:"+errorMsg);
??? //? System.out.println("activityInfo=:"+activityInfo.value[0].getActivityDesc());
??
??VotePartnerInfProxy proxy = new VotePartnerInfProxy ();
??//proxy.setEndpoint("http://localhost:8080/VotePartnerInf/services/VotePartnerInf");
??//proxy.setEndpoint("http://localhost:8080/WebServerTest1/wsdl/VotePartnerInfSOAP");
??
??proxy.setEndpoint("http://localhost:8080/WebServerTest3/services/VotePartnerInfSOAP");//successful
??
??//需要与?WSDL文档中的,? <soap:address location="http://localhost:8080/WebServerTest3/services/VotePartnerInfSOAP"/>的相一致。
??//proxy.setEndpoint("http://localhost:8080/WebServiceTest1/services/VotePartnerInfSOAP");//successful
???????
??????
??
????? ?
?
??????? System.out.println("4444444444");
???????
??????? try {
?
??? proxy.queryActivityList("wangxifeng",activityInfo);
???
?? System.out.println("55555555");
??????? System.out.println("errorMsg=:"+errorMsg);
????? System.out.println("activityInfo=:"+activityInfo.value[0].getActivityDesc());
??????? }
??????? catch (RemoteException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??}
?}
}
需要注意的是,