你好,我已經消耗在Java中,我生成的代理類這裏是產生通過調用其生成的代理類消費SOAP WSDL
1)Bill.java
2)BillInfo.java
3)GetBillInfo.java
4)GetBillInfoResponse.java
5)ObjectFactory.java
現在樣品輸入給我的班級名單SOAP服務由客戶機是如下
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-<soap:Body>
-<bil:getBillInfo xmlns:ns2="http://billpay.ws.bi.com/" xmlns:bil="http://billpay.ws.bi.com/">
-<billInfo>
-<bill>
<consumerNo>10300075929</consumerNo>
<shortName>SNGPL</shortName>
</bill>
<channel_id>100</channel_id>
<password>XXXXXX</password>
<username>xxx</username>
<webServiceID>3000</webServiceID>
<STAN>439624</STAN>
<channelType>Mobile</channelType>
</billInfo>
</bil:getBillInfo>
</soap:Body>
</soap:Envelope>
和輸出從該輸入如下
-<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
-<S:Body>
-<ns2:getBillInfoResponse xmlns:ns2="http://billpay.ws.bi.com/">
-<return>
-<bill>
<billAmount>150.00</billAmount>
<billConsumerName>GOHER PIRZADA </billConsumerName>
<billMonth>2016-01</billMonth>
<consumerNo>10300075929 </consumerNo>
<dueDate>2017-08-19</dueDate>
<lateAmount>160.00</lateAmount>
<shortName>SNGPL</shortName>
<utilityCompanyAccount>900083181010586</utilityCompanyAccount>
</bill>
<channel_id>0</channel_id>
<password/>
<status>Processed OK</status>
<statusCode>0</statusCode>
<username/>
<webServiceID>0</webServiceID>
</return>
</ns2:getBillInfoResponse>
</S:Body>
</S:Envelope>
這些是給我的,現在實現這個服務,我已經寫了下面的代碼示例,但它不工作,請看看我的代碼
GetBillInfo gbi = new GetBillInfo();
BillInfo bi = new BillInfo();
bi.setChannelId(100);
bi.setPassword("XXXXXX");
bi.setUsername("xxx");
bi.setWebServiceID(3000);
bi.setChannelType("Mobile");
bi.setSTAN("439624");
Bill bill = new Bill();
bill.setConsumerNo("10300");
bill.setShortName("SNGPL");
gbi.setBillInfo(bi);
ObjectFactory of=new ObjectFactory();
JAXBElement<GetBillInfo> jbx = of.createGetBillInfo(gbi);
這裏,我並不沒有返回值得到任何迴應,請讓我知道我正在犯什麼錯誤。請讓我知道如何通過查看SOAP輸入和輸出值來調用哪些代碼
ObjectFactory只創建您需要發送的對象。缺少的是實際的服務類,它有一個方法,可能是getBillInfo,您可以將該對象作爲參數提供給該方法。 –
ObjectFactory類具有這兩種方法 @XmlElementDecl空間(namespace = 「http://billpay.ws.bi.com/」,名字= 「getBillInfo」) 公衆的JAXBElement createGetBillInfo(GetBillInfo值){ 返回新的JAXBElement ( _GetBillInfo_QNAME,GetBillInfo.class,null,value); } –
Jahangeer
ObjectFactory僅用於創建類,它不會發送或接收任何內容。好的,讓我們開始另一種方式......你是如何創建代理類的? wsimport的? –