使用Axis编写Web Service的Java客户端时,operation和parameter的namespace都是必须的,否则JBoss将抛出Endpoint does not contain operation meta data异常。具体设置如下:
Service service=new Service();
Call call=(Call)service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName(new QName(namesapce,operationName));
call.addParameter(new QName(namesapce,parameterName,XMLType, parameterMode);//具体参数见Axis API
今天就因为namespace的问题,发布在JBoss下的Web Service一直不能用自己写的Client访问,但是使用Eclipse自动生成的Web Service Test Client可以。
分析Test Client的源码,查看JBoss的server log,对比正确与错误的SOAP消息,终于还是解决了问题。