卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

JAVA web services命名空間修改方法詳解

在開發(fā)JAVA web services時(shí),經(jīng)常會(huì)涉及到命名空間的問題。如果不統(tǒng)一使用命名空間或者與其他系統(tǒng)提供的webservice服務(wù)不一致,就會(huì)出現(xiàn)各種錯(cuò)誤。本文將介紹如何修改JAVA web

在開發(fā)JAVA web services時(shí),經(jīng)常會(huì)涉及到命名空間的問題。如果不統(tǒng)一使用命名空間或者與其他系統(tǒng)提供的webservice服務(wù)不一致,就會(huì)出現(xiàn)各種錯(cuò)誤。本文將介紹如何修改JAVA web services的命名空間。

統(tǒng)一使用命名空間

為了保證系統(tǒng)內(nèi)部服務(wù)的一致性,我們需要統(tǒng)一使用命名空間。我們可以在web.xml中配置全局的命名空間,這樣在所有的webservice服務(wù)中都會(huì)自動(dòng)添加該命名空間。具體配置如下:

全系統(tǒng)統(tǒng)一使用的命名空間

```xml

wsdlNamespace

```

其他系統(tǒng)提供的webservice服務(wù)

如果你需要調(diào)用其他系統(tǒng)提供的webservice服務(wù),但是其命名空間與你的系統(tǒng)不一致,我們需要修改該服務(wù)的命名空間。具體方法如下:

其他系統(tǒng)提供的webservice服務(wù)

1. 打開WSDL文件,查找該服務(wù)的命名空間。

2. 在你的客戶端代碼中創(chuàng)建一個(gè)新的命名空間,并將其指定為原始命名空間的前綴。

3. 將請求類和返回類的命名空間替換成新的命名空間。

Stub類中的命名空間設(shè)置

在Stub類中,我們可以通過以下方式設(shè)置請求類的命名空間:

Stub類中有webservice服務(wù)的調(diào)用方法

```java

BindingProvider bp (BindingProvider)port;

().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);

().put(_MTOM_REQUEST, true);

().put(_MTOM_THRESHOLD, 10000);

Map map ();

map.put(JAXBContext.JAXB_ENCODING, "UTF-8");

map.put(_PROPERTY, username);

map.put(_PROPERTY, password);

((StubExt) port).setOutboundHeaders(

(new QName("", "token"), token));

((Binding) port).getRequestContext().put(_PROPERTY, username);

((Binding) port).getRequestContext().put(_PROPERTY, password);

```

從最初的客戶端代碼看,請求類的命名空間為UPB,我們需要將其修改為全局命名空間:

請求類命名空間修改

```java

@WebServiceClient(name "Service", targetNamespace "", wsdlLocation "")

public class Service extends ServiceImpl {

}

```

最初的返回類命名空間也為UPB,同樣需要修改:

返回類命名空間修改

```java

@XmlAccessorType()

@XmlType(name "", propOrder {...})

@XmlRootElement(name "Response", namespace "")

public class Response

implements Serializable {

}

```

Factory命名空間校驗(yàn)

Factory會(huì)進(jìn)行命名空間的校驗(yàn)及字段的校驗(yàn),所以我們需要在Factory中進(jìn)行相應(yīng)的修改:

Factory命名空間校驗(yàn)

```java

public static Service create(String endpointURL, QName serviceName, String username, String password) throws MalformedURLException {

URL wsdlURL ("");

if (wsdlURL null) {

throw new WebServiceException("Can't find WSDL!");

}

ServiceImpl ss new ServiceImpl(wsdlURL, serviceName);

(new CustomHandlerResolver(username, password));

return ();

}

```

以上就是Java Web Services命名空間修改的詳細(xì)步驟。注意,在修改命名空間時(shí)需要謹(jǐn)慎操作,以免影響系統(tǒng)的穩(wěn)定性。

標(biāo)簽: