1: 根据server段的wsdl 利用wsimport 工具生成客户端代码。
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<!--
Published by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown.
-->
<!--
Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown.
-->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://JAX_WS.webservice/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://JAX_WS.webservice/" name="HelloService">
<types>
<xsd:schema>
<xsd:import namespace="http://JAX_WS.webservice/" schemaLocation="http://cn00202245:8080/JAX-WS-1.0/HelloService?xsd=1"/>
</xsd:schema>
</types>
<message name="sayHello">
<part name="parameters" element="tns:sayHello"/>
</message>
<message name="sayHelloResponse">
<part name="parameters" element="tns:sayHelloResponse"/>
</message>
<portType name="Hello">
<operation name="sayHello">
<input wsam:Action="http://JAX_WS.webservice/Hello/sayHelloRequest" message="tns:sayHello"/>
<output wsam:Action="http://JAX_WS.webservice/Hello/sayHelloResponse" message="tns:sayHelloResponse"/>
</operation>
</portType>
<binding name="HelloPortBinding" type="tns:Hello">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="sayHello">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="HelloService">
<port name="HelloPort" binding="tns:HelloPortBinding">
<soap:address location="http://cn00202245:8080/JAX-WS-1.0/HelloService"/>
</port>
</service>
</definitions>
2:
"C:\\Program Files\\Java\\jdk1.7.0_51\\bin\\wsimport.exe" -keep -p client.JAX_WS http://localhost:8080/JAX-WS-1.0/HelloService?wsdl
3.生成客户端代码
/**
* Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
*
* You may not modify, use, reproduce, or distribute this software except in
* compliance with the terms of the License at:
* http://java.net/projects/javaeetutorial/pages/BerkeleyLicense
*/
package javaeetutorial.hello.webclient;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.WebServiceRef;
import frank.Hello;
import frank.HelloService;
@WebServlet(name="HelloServlet", urlPatterns={"/HelloServlet"})
public class HelloServlet extends HttpServlet {
// wsimport -p frank -s http://localhost:8080/helloservice-war/HelloService?WSDL
@WebServiceRef(wsdlLocation = "http://localhost:8080/helloservice-war/HelloService?WSDL")
private HelloService service;
/**
* Processes requests for both HTTP <code>GET</code>
* and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<html lang=\"en\">");
out.println("<head>");
out.println("<title>Servlet HelloServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet HelloServlet at " +
request.getContextPath () + "</h1>");
out.println("<p>" + sayHello("world") + "</p>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
private String sayHello(java.lang.String arg0) {
Hello port =
service.getHelloPort();
return port.sayHello(arg0);
}
}
相关推荐
2. **客户端**:客户端部分会展示如何使用JAX-WS的`javax.xml.ws.Service`类或JAX-RS的`Client` API来调用服务端提供的Web服务。对于JAX-WS,客户端可能会生成一个代理类来调用服务;对于JAX-RS,可以使用`Client`...
- **JAX-WS运行时环境**:Java EE应用服务器(如Tomcat、Glassfish、WildFly等)内置了JAX-WS支持,可以自动处理服务的生命周期,包括服务的发布、查找和取消发布。 4. **优势:** - **简单性**:JAX-WS使用注解...
【标题】:Web服务之Java API for XML Web Services (JAX-WS) 【内容详解】 JAX-WS,全称为Java API for XML Web Services,是Java平台上的一个标准,用于构建和部署基于SOAP(Simple Object Access Protocol)的...
在这个“webservice Demo注解+jax-ws”示例中,我们将深入探讨Web服务的注解使用以及基于Java API for XML Web Services (JAX-WS)的实现。 首先,让我们了解一下JAX-WS。它是Java平台的标准组件,用于创建和处理Web...
在"jax-ws-client"目录中,包含了调用上述Web服务的客户端代码。创建JAX-WS客户端通常包括以下步骤: 1. **生成客户端代理**:使用`wsimport`工具,根据服务的WSDL生成Java客户端代理类。 ```bash wsimport -keep ...
JAX-WS提供了工具如`wsimport`,可以从服务接口自动生成WSDL文档和客户端存根类。在命令行中运行: ``` wsimport -keep -s src -p com.example.helloworld HelloWebService.java ``` 这将生成服务端所需的部署文件和...
- **服务发布与消费**: JAX-WS提供工具将SEI映射为WSDL,以及从WSDL生成客户端调用代码。 **二、JAX-WS服务端开发** 1. **创建SEI**:定义一个Java接口,标记为`@WebService`,接口中的方法对应Web服务的端点操作...
JAX-WS是Java平台上的Web服务规范,它使得开发者能够利用Java语言的强类型系统来构建Web服务,同时提供了客户端和服务器端的API。 **JAX-WS核心组件:** 1. **SOAP(Simple Object Access Protocol):** 是Web服务...
通过JAX-WS,开发者可以方便地创建服务端点(SEI,Service Endpoint Interface)并将其暴露为Web服务,同时也可以创建客户端代理来调用远程服务。 在Spring框架中集成JAX-WS,可以利用Spring的依赖注入(DI,...
【标题】"MyEclipse基于JAX-WS开发Webservice+WebserviceClient客户端调用" 涉及到的关键技术主要包括MyEclipse集成开发环境、JAX-WS规范、Web服务(Webservice)以及客户端调用。下面将详细介绍这些概念及其相互...
通过JAX-WS,开发者可以轻松地创建服务端点(SEI,Service Endpoint Interface)和客户端代理,实现服务的发布和调用。 在MyEclipse 6.5中,开发基于JAX-WS的Web服务分为以下几个步骤: 1. 创建SEI:首先,你需要...
以上就是MyEclipse中使用JAX-WS开发Web服务的全过程,涵盖了从创建项目、编写服务接口、部署服务到创建和测试客户端的全部步骤。通过这种方式,开发者可以轻松地构建基于Java的Web服务,并与其它系统进行交互。
**JAX-WS实现Web Service发布的详解** JAX-WS(Java API for XML Web Services)是Java平台上用于创建Web服务的标准API,它简化了...在实际项目中,结合源码和相关工具,JAX-WS能够高效地支持企业级的分布式应用开发。
5. **客户端代理(Client Proxy)**:JAX-WS为Web服务客户端自动生成代理类,使得客户端可以通过调用Java方法来调用远程Web服务。 6. **协议适配器(Protocol Adapter)**:支持多种传输协议,如HTTP、HTTPS,以及...
6. **客户端调用(Client Invocation)**:JAX-WS也提供了生成客户端代理类的工具,使得客户端可以像调用本地方法一样调用Web服务。 在压缩包的文件列表中,虽然只有一个名为"webservice"的文件,但通常这个文件...
【异步调用_Async.rar】和【AsyncClient.rar】可能讲解了如何在JAX-WS和Spring中实现异步Web服务调用。异步调用对于处理长时间运行的任务或者避免阻塞客户端线程非常重要。Spring支持异步方法调用,可以通过`@Async`...
在【压缩包子文件的文件名称列表】中提到的"webservice_002_JAX-WS_client"可能是一个示例或教程,涵盖了如何使用JAX-WS创建和使用Web服务客户端。这可能包括以下步骤: 1. **定义SEI**: 编写服务接口,标记为`@...
JAX-WS 2.0 是Java API for XML Web Services的第二个主要版本,它引入了异步Web服务调用的功能,以解决在Service-Oriented Architecture(SOA)环境中开发响应迅速的Web服务客户端应用程序的挑战。由于Web服务调用...
这是一个示例项目,展示了一种利用 Apache Commons Pool 创建和维护 JAX-WS 客户端代理池的方法。 将部署两件事:一个 JAX-WS 端点和一个“客户端”servlet。 调用 servlet 时,它将创建一个代理对象池,并使用该池...