package soap;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class SOAPProcessor2 {
public static String invokeSrv(String endpoint) throws IOException {
try {
SOAPConnectionFactory connectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection connection = connectionFactory.createConnection();
URL client = new URL("http://localhost:8088/soapTest");
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage message = messageFactory.createMessage();
SOAPPart soapPart = message.getSOAPPart();
SOAPEnvelope envelope = soapPart.getEnvelope();
SOAPBody body = envelope.getBody();
//Populate the Message
StreamSource preppedMsgSrc = new StreamSource(new FileInputStream("soapRequest.xml"));
soapPart.setContent(preppedMsgSrc);
//Save the message
message.saveChanges();
//Set the destination
SOAPMessage response = connection.call(message, client);
//Create the transformer
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
//Extract the content of the reply
Source sourceContent = response.getSOAPPart().getContent();
//Set the output for the transformation
StreamResult result = new StreamResult(System.out);
transformer.transform(sourceContent, result);
//System.out.println(result);
//Close the connection
connection.close();
} catch (UnsupportedOperationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SOAPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
/**
* @param args
*/
public static void main(String[] args) {
try {
invokeSrv("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相关推荐
Java发送SOAP报文是Web服务通信中的一个常见任务,它涉及到使用XML格式的数据进行网络通信。SOAP(Simple Object Access Protocol)是一种轻量级的、基于XML的协议,用于在Web上交换结构化和类型化的信息。本文将...
4. **发送SOAP请求**:创建完SOAP请求后,通过`SOAPConnectionFactory.createConnection()`获取`SOAPConnection`实例,然后使用`SOAPConnection.call(SOAPMessage request, String url)`方法将请求发送到指定的SOAP...
在提供的压缩包中,"SOAP实例程序,实现Java发送SOAP信息"可能是源代码文件,其中包含了一个完整的Java应用示例,演示了如何发送SOAP请求并处理响应。"1"可能是额外的文件或资源,如配置文件、依赖库或测试数据。...
通过阅读提供的"java-soap-webservice"文档,你可以进一步了解具体的实现步骤,包括如何设置项目、配置JAX-WS、生成客户端代码、编写调用服务的代码,以及如何解析响应。实践中,不断动手操作和调试是掌握这一技术的...
3. **发送SOAP请求**:将预先准备好的XML文件读取到内存中,并通过`OutputStream`将其写入HTTP请求中。 4. **接收响应**:使用`InputStreamReader`读取服务器返回的SOAP响应,然后存储到本地文件`result.xml`中。 #...
- 发送SOAP请求:Servlet可以使用`java.net.URLConnection`或Apache的 HttpClient库来构造和发送HTTP POST请求,其中请求体包含SOAP消息。 - 处理SOAP响应:接收到响应后,Servlet可以使用XML解析器解析响应体,...
- Java中可以通过`java.net.HttpURLConnection`或者第三方库如Apache HttpClient来发送SOAP请求。 - 构建SOAP消息的方式与VB.NET类似,但需要注意字符串转义的不同,例如在Java中XML的双引号需要用`\"`来表示。 -...
soap2String()方法用于将SOAP报文转换为字符串形式,以便于发送或存储。 在initSoapPart()方法中,首先使用MessageFactory.newInstance().createMessage()方法创建了一个SOAPMessage对象,然后获取了SOAPPart对象,...
Java调用SOAP(Simple Object Access Protocol)服务是Java开发者在集成不同系统或服务时常见的需求。SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本篇文章将详细阐述如何在Java中实现对SOAP...
本文将深入探讨如何使用Java来实现基于SOAP的XML文档网络传输以及远程过程调用(RPC)。这是一项关键的技术,它允许不同系统间的无缝交互,即使这些系统采用不同的编程语言和平台。 SOAP是一种基于XML的协议,主要...
- `SOAPConnectionFactory`和`SOAPConnection`用于建立SOAP连接,发送和接收SOAP消息。 3. **WSDL(Web Service Description Language)**: - WSDL是SOAP服务的接口定义语言,它描述了服务的位置、使用的消息...
在Java编程语言中,发送邮件和短信是常见的通信方式,特别是在自动化通知、客户服务或系统集成中。...通过阅读提供的`java短信发送`和`java发送邮件`的文件,你可以找到更具体的实现细节和示例代码。
要查看由Java代码编写的SOAP请求报文头信息,你需要了解几个关键概念和工具。首先,理解SOAP消息的基本结构至关重要。一个SOAP消息通常包含三个主要部分:头部(Header)、体(Body)以及可选的SOAP-envelop元素。...
与soap-ui相比,虽然soap-ui是一款强大的SOAP测试工具,它允许用户图形化地创建、编辑和发送SOAP请求,同时提供详尽的响应分析和测试套件管理功能。然而,“soap-build”更专注于代码生成,特别是在持续集成(CI)和...
这个库提供了SoapHttpClientProtocol类,它是System.Web.Services.Protocols.HttpWebClientProtocol的子类,可以用来发送带有SOAP Header的请求。 接下来,我们打开`WindowsFormsApplication1.sln`,这是一个Visual...
在本项目中,Java客户端作为SOAP消息的发送方,向服务器端的Web服务(即“webservice计算器项目”)发送计算请求,并接收返回的结果。 首先,理解SOAP消息的基本结构至关重要。SOAP消息通常包含一个 envelop 元素,...
此外,为了调试和测试SOAP服务,可以使用工具如SoapUI,它允许发送和接收SOAP请求,查看响应,检查消息格式,并执行性能测试。这在开发和维护过程中非常有用。 在处理SOAP时,我们还需要关注性能和安全性。由于SOAP...
Axis是另一种流行的Java SOAP工具,它可以生成客户端和服务器端的代码。 在给定的压缩包文件中,"SOAP.ppt"可能是关于SOAP协议的演示文稿,详细解释了SOAP的工作原理、消息结构和在Java中的实现。而...
总的来说,这个压缩包包含了一套完整的SOAP通信解决方案,从构建请求,到发送,再到解析响应并转换为Java实体,为处理SOAP Web服务提供了一个实用的工具集。对于需要处理SOAP接口的开发者来说,这是一个宝贵的资源。
### 跨平台e化程式设计-XML/Java/SOAP整合应用 #### 书本主旨与背景 本书《跨平台e化程式设计-XML/Java/SOAP整合应用》聚焦于探讨XML、Java以及SOAP技术如何协同作用,解决跨平台环境下的数据交换与程序集成问题。...