我想用本地wsdl創建Web服務的Axis客戶端,但不知道wsdl的url。我已經試過了動態調用接口方法,在本教程中http://www.ibm.com/developerworks/webservices/library/ws-javaclient/index.html,但我得到了以下錯誤:如何創建沒有wsdl url的Axis客戶端?
AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No client transport named 'null' found! faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:No client transport named 'null' found! at org.apache.axis.client.AxisClient.invoke(AxisClient.java:170)
我的代碼是:
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new QName("http://j2ee.netbeans.org/wsdl/CompositionBpelModule/ComposedWebServiceService","ComposedWebServiceServiceService"));
Call call = service.createCall();
call.setPortTypeName(new QName("http://j2ee.netbeans.org/wsdl/CompositionBpelModule/ComposedWebServiceService","ComposedWebServiceServicePortType"));
call.setProperty(Call.OPERATION_STYLE_PROPERTY, "wrapped");
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "");
call.setReturnType(XMLType.XSD_STRING);
call.setOperationName(new QName("http://j2ee.netbeans.org/wsdl/CompositionBpelModule/ComposedWebServiceService", "ComposedWebServiceServiceOperation"));
call.addParameter("input1", XMLType.XSD_STRING, ParameterMode.IN);
String[] params = {input};
response = (String)call.invoke(params);
謝謝