- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下用于 Java 的 SOAPClient(详细信息是我从以下教程 http://users.skynet.be/pascalbotte/rcx-ws-doc/saajpost.htm 中获得的)。
但是,它似乎抛出异常。
这是我的代码:
javax.xml.soap.SOAPMessage msg;
MessageFactory mf = MessageFactory.newInstance();
msg = mf.createMessage();
SOAPPart part = msg.getSOAPPart();
StreamSource source = new StreamSource(new File("samples/input1.xml”));
part.setContent(source);
msg.saveChanges();
String endpoint = "http://ws1.parasoft.com/glue/calculator";
SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection conn = scf.createConnection();
javax.xml.soap.SOAPMessage response = conn.call(msg, endpoint);
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
Source sc = response.getSOAPPart().getContent();
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
StreamResult result = new StreamResult(ostream);
tf.transform(sc, result);
conn.close();
System.out.println(new String(ostream.toByteArray(), "UTF-8”));
在此示例中,我们假设 samples/input1.xml
包含以下内容:
<s11:Envelope xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/">
<s11:Body>
<ns1:add xmlns:ns1="http://www.parasoft.com/wsdl/calculator/">
<ns1:x>248</ns1:x>
<ns1:y>365</ns1:y>
</ns1:add>
</s11:Body>
</s11:Envelope>
我尝试使用的示例网络服务可以在这里找到: http://www.service-repository.com/client/operations
运行上述 Java 代码(使用 SOAPClient 库)时,会引发以下异常:
Jul 19, 2012 3:50:11 AM com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
SEVERE: SAAJ0008: Bad Response; cannot find /calculator
Exception in thread "main" com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (404cannot find /calculator
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:148)
at corebus.test.deprecated.TestMain.main(TestMain.java:1870)
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (404cannot find /calculator
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:258)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:144)
... 1 more
CAUSE:
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (404cannot find /calculator
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:258)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:144)
使用此网站,服务似乎已启动并正在运行,并且运行良好。
我什至通过执行一个简单的 cURL 请求来验证服务端点是否处于 Activity 状态,这令人惊讶地产生了正确的输出。
curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:http://www.parasoft.com/wsdl/calculator/" -d@soap-request.xml http://ws1.parasoft.com/glue/calculator
产生的输出是:
<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/‘>
<soap:Body>
<n:addResponse xmlns:n='http://www.parasoft.com/wsdl/calculator/‘>
<n:Result xsi:type='xsd:float'>613.0</n:Result>
</n:addResponse>
</soap:Body>
</soap:Envelope>
所以,我的问题是:首先,Java 代码有什么问题?又该如何解决呢?或者还有其他更好/更可靠的通用 SOAPClient 库值得推荐吗?
最佳答案
通过在浏览器中的 URL 中附加 ?wsdl 来查看 WSDL,或者以某种方式获取 WSDL。检查 WSDl 是否指定它是文档样式还是 PRC 样式,并据此准备输入 xml。
如果可能的话,使用非常方便的 SOAP UI 工具。
关于java - 使用 Java Generic SOAPClient (SAAJ) 时抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547908/
我的基于 SAAJ 的客户端生成以下 XML 并将其发送到 .NET Web 服务: temp123 temp321 baby000 20 我遇到的问题是,对于 Authentic
我正在尝试将我的项目升级到 java 15。在尝试启动服务器时,我在 bean 创建过程中遇到错误。 util-context.xml: 虚拟适配器.java: private
我有以下错误: Exception: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed:
在我的网络应用程序中,我正在联系一个网络服务(使用 JAX-WS),但我收到以下错误: java.lang.ExceptionInInitializerError at com.sun.xml
我正在创建一个与 Web 服务通信的程序,该程序是使用 JSP 和 Struts 编写的。但是当我想创建一个新的 web 服务实例时,出现以下错误: SEVERE: Servlet.service()
我尝试使用 从 String 创建一个 Soap Envelope SOAPPart().setContent(Source). 我尝试从同一条消息中获取 SOAPBody,但它抛出异常 SEVERE
我想通过 https 调用 Web 服务,并且需要包含客户端证书。我正在用 SAAJ 来做这件事 SOAPConnectionFactory soapConnectionFactory = SOAPC
我有一个基本的 SOAP 服务端点,实际上是 SAP ECC,提供一个服务。我已经使用 SOAPUI 4.5 测试了该服务,并且使用 HTTP Auth 可以正常工作,从事物的外观来看是先发制人的。我
我们需要发送非常巨大的 SOAP 消息(多部分、MTOM),比如大约 1 或 2 GB。有时该过程会出现以下 OOM: java.lang.OutOfMemoryError: Java Heap Sp
我有一个与解析 SOAP 消息相关的问题。 这是消息: ------=_Part_3_5438437.1107262647279 Content-Type: text/xml
我目前正在为我的应用程序使用 Tomcat 服务器,pom.xml 中的以下代码为我提供了适用于 soap 1.2 协议(protocol)的 SAAJ 1.3 版。但是当我们将服务器迁移到 webs
我尝试在 jquery 中向第三方发送 SOAP 请求,但总是出现此错误: soap:ClientProblems creating SAAJ object model 我这样做的方法是将几个标记传递
SAAJ: SOAP with Attachments API for Java MTOM: SOAP消息传输优化机制 我的简单理解:它们处理 SOAP 附件,MTOM 是 SAAJ 的更优化版本。它
我正在使用 SAAJ java 制作一个 Web 服务客户端。我是客户,我询问网络服务的信息。但网络服务受到用户名和密码的保护。 我不知道如何添加这两个。 我在我的代码中尝试了它(请参阅命令),但没有
我正在尝试将一些数据发布到远程计算机,但它返回错误 ns1:Client.NoSOAPAction no SOAPAction header! 我的猜测是我发送 header 元素的方式
SAAJ 基于 DOM,即文档对象模型。这句话是什么意思? AXIOM 基于 StAX,即 XML 的流 API。这句话是什么意思? 哪个更好? 我想澄清关于这两个 API 的概念。谢谢你 最佳答案
我一直致力于创建一个基于 SAAJ 的客户端。一切似乎都工作正常,直到我实现了将附件作为 Web 服务请求的一部分发送的逻辑。 Web 服务操作很简单 - 它需要一个用于文件位置的字符串元素和一个用于
这两个 SOAP 消息有效吗?不同的部分是 namespace 属性 xmlns="http://www.sigvalue.com/acc"。第一个 soap 是一个示例,第二个由 java 代码生成
我正在创建一个没有轴的网络服务。我正在使用 SAAJ、JAXB 和 Servlet。我可以使用 JAXB 正确编码和解码一个类。但是我怎样才能将 SAAJ 和 JAXB 一起用于 SOAP 通信。我想
我正在寻找替代的 SOAP (javax.xml.soap) 实现,而不是 Sun SAAJ .这样做的原因是因为我想在 IBM JDK 5 驱动的 Tomcat AS 上部署 JAX-WS WebS
我是一名优秀的程序员,十分优秀!