(图一)
项目组要求使用 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", "111111", "青年",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", "111111", "青年",resultCode, errorMsg, 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();
}
}
}
需要注意的是,