namespace mismatch require錯誤處理方法

mybwu_com發表於2014-04-30

最近在進行兩個專案開發時,需要使用WebService進行通訊,在一個專案中使用axis2實現了,但在別一個專案中呼叫時,卻發生異常,錯誤資訊:namespace mismatch require http://webservice.transcoding.module.iefree.com found http://ws.apache.org/axis2/xsd

產生錯誤的程式碼:

	public static String callService(String taskXML) throws AxisFault {
		
		RPCServiceClient client = new RPCServiceClient();
		Options options = client.getOptions();
		String address = getAddress_Transcoding();
		EndpointReference epf = new EndpointReference(address);
		options.setTo(epf);
		
		QName qName=new QName("http://ws.apache.org/axis2/xsd","addTransTask");
		Object[] result = client.invokeBlocking(qName, new Object[]{ "ierp", "ierp2vod", taskXML } , new Class[] {int.class});
		return result[0].toString();
	}

產生錯誤的原因:

QName qName=new QName("http://ws.apache.org/axis2/xsd","addTransTask");

QName中使用的是http://ws.apache.org/axis2/xsd,而通過http://192.168.1.131:8080/video-library/services/Transcoding?wsdl檢視得到的targetNamespace=http://webservice.transcoding.module.iefree.com;

解決方案:

將QName的引數改為“http://webservice.transcoding.module.iefree.com”即可。

參考資料:

http://blog.sina.com.cn/s/blog_6f1a188a0100y6mo.html



相關文章