2
我一直在使用jbossws-cxf使用Web服務。我不認爲這個問題與我正在使用的實現有關,而是代碼是如何生成的。這是我的pojo與Web服務的註釋。肥皂消息響應正文修改幫助
當我測試web服務(與soapUI的)package com.matt.test.ws;
import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public class JbossWSTestImpl {
private String[] statuses = {"Hello","JbossWS is cool","GoodBye","l33t hax0rz"};
@WebMethod
@WebResult(name="status")
public String getStatus(){
return statuses[new java.util.Random().nextInt(3)];
}
}
我SOAP響應
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getStatusResponse xmlns:ns2="http://ws.test.matt.com/">
<status>Hello</status>
</ns2:getStatusResponse>
</soap:Body>
</soap:Envelope>
有沒有辦法短的手工編輯WSDL文件來修改命名空間「NS2」就是讓我可以將響應包裝在不同的標籤中。我想要的是類似
<soap:Envelope ...>
<soap:Body>
<MyWSResponse xmlns="http://ws.test.matt.com/">
<status>Hello</status>
</MyWSResponse>
<soap:Body>
<soap:Envelope>
是否有註釋,我沒有使用,可以修改?我還沒有找到一種方法來修改wsdl。
UPDATE:將@WebService
更改爲@WebService(targetNamespace="http://MyWSResponse")
將soap請求更改爲正確的標記,但soap響應消息仍然使用ns2而不是MyWSResponse。
好的我看到了,但是如何讓我在soap消息中使用MyWSResponse標籤?因爲實際上http://ws.test.matt.com實際上並不存在,所以它如何知道如何使用元素名稱?我問的原因是因爲我使用了其他web服務,並且它們在soap:Body元素中有不同的元素名稱,我想知道他們是如何實現這一點的? – 2010-09-01 04:54:33
嘗試將targetNamespace屬性添加到WebResult註釋並將其設置爲空? like targetNamespace =「」??? – 2010-09-01 05:12:47
沒有做任何事情:( – 2010-09-01 20:49:39