在開發webservice的過程中,出現了不少的問題,現就開發過程中的一些問題做如下總結:
第一步:您要有一個wsdl檔案,如ServerInterface.wsdl,將其放入你的工程中
第二步:注意紅色部分的代碼,http://(伺服器或Ip地址)/工程名/(web.xml檔案中的webservice路徑)/(工程中services.xml中的name的值)
如果出現下面異常,第一,檢查下設定檔是否有誤,第二,在工程中的/WebServices/services.xml檔案中,加上如下代碼試試
<wsdlURL>file:/wsdl/ServerInterface.wsdl</wsdlURL>
注意:wsdl是項目工程中的一個包名,ServerInterface.wsdl是你已經有的一個wsdl檔案
public SMServiceClient() {
create0();
Endpoint SMServicePortTypeLocalEndpointEP = service0 .addEndpoint(new QName("http://smsmonitor.asiainfo.com", "SMServicePortTypeLocalEndpoint"), new QName("http://smsmonitor.asiainfo.com", "SMServicePortTypeLocalBinding"), "xfire.local://SMService");
endpoints.put(new QName("http://smsmonitor.asiainfo.com", "SMServicePortTypeLocalEndpoint"), SMServicePortTypeLocalEndpointEP);
Endpoint SMServiceHttpPortEP = service0 .addEndpoint(new QName("http://smsmonitor.asiainfo.com", "SMServiceHttpPort"), new QName("http://smsmonitor.asiainfo.com", "SMServiceHttpBinding"), "http://localhost/webserviceUnion/services/SMService");
endpoints.put(new QName("http://smsmonitor.asiainfo.com", "SMServiceHttpPort"), SMServiceHttpPortEP);
}
org.codehaus.xfire.fault.XFireFault: Parameter {http://smsmonitor.asiainfo.com}send does not exist!
at org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:201)
at org.codehaus.xfire.service.binding.DocumentBinding.readMessage(DocumentBinding.java:35)
at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Thread.java:619)