使用的是 tomcat + axis2(其中利用了rampart模块)调用的时候 报错
Exception in thread "main" org.apache.axis2.AxisFault: SOAP message MUST NOT contain a Document Type Declaration(DTD)
我的demo图
[img=http://my.csdn.net/my/album/detail/1164126][/img]
------解决方案--------------------
字面理解是xml里面不能包含dtd
在你的transportutils.createsoapmessage里面报的错、你打个断点跟一下吗
webservice也是能打断点得呀
------解决方案--------------------
类型有错误啊~
------解决方案--------------------
http://download.csdn.net/detail/s478853630/4200795
或许对你有帮助
------解决方案--------------------
public class AxisClient {
public static void main(String[] args) throws Exception {
String targetEndPoint = "http://localhost:8080/Asix2Demo/services/HelloWorld";
Service ser = new Service();
try {
Call call = (Call) ser.createCall();
call.setTargetEndpointAddress(targetEndPoint);
call.setOperationName(new QName(targetEndPoint, "hello" ));
call.setOperation("hello");
String result = (String) call.invoke(new Object[] { new String("张三") });
System.out.println("result=" + result);
//call.setOperation("add");
//int addResult = (Integer) call.invoke(new Object[] {new Integer(1), new Integer(1) });
//System.out.println("addResult=" + addResult);
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
这是我弄的一个客户端 楼主是不是客户端方法哪里不对 或者定义的webservice哪里不对
------解决方案--------------------
//直接调url就可以吧?
String para = "";//参数
String url = "http://192.198.1.1:80/Database.asmx/Method?para="+para;
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
org.w3c.dom.Document doc = builder.parse(url);
org.w3c.dom.NodeList list =doc.getElementsByTagName("Table");
//然后循环去读List吧。。。
//类似于这样//list.item(i).getChildNodes().item(1).getChildNodes().item(0).getNodeValue()