千家信息网

如何使用JDK1.6的JAX-WS编写WebService

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章将为大家详细讲解有关如何使用JDK1.6的JAX-WS编写WebService,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Web services概念
千家信息网最后更新 2025年02月04日如何使用JDK1.6的JAX-WS编写WebService

这篇文章将为大家详细讲解有关如何使用JDK1.6的JAX-WS编写WebService,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、Web services概念

Web services是客户端和服务端通过万维网的HTTP协议进行交互。

二、JAX-WS实现简单的Web services

2.1 建一个名为HelloServer的Web应用作为Webservice客户端

2.2 在HelloServer应用下新建一个类:

package helloservice.endpoint; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class Hello {     private String message = new String("Hello, ");     public void Hello() {     }     @WebMethod     public String sayHello(String name) {         return message + name + ".";      } }

2.3 在weblogic下发布HelloServer应用,应用名为WebRoot。

2.4 在IE里面打开http://localhost:7001/WebRoot/HelloService?wsdl

如果可以查看到wsdl的内容说明发布成功.比如:

    -   -   -  -  -            -         -         -  -                -      -      -         -               -  -              

2.5 运行wsimport

wsimport是JDK1.6特有的,[JAVA_HOME]/bin下。

2.5.1 在E:\Program Files\PowerCmd>目录下,新建一个文件夹generate。

2.5.2 运行如下命令:

wsimport -s generate http://localhost:7001/WebRoot/HelloService?wsdl

如果返回

parsing WSDL...generating code...

说明运行成功。

2.5.3 查看generate目录,可以看到生成了JAVA文件,与generate同级的目录下,还有class文件。(这里生成的JAVA文件,客户端需要用到)

生成的HelloService.java如下:

package helloservice.endpoint;  import java.net.MalformedURLException;  import java.net.URL;  import javax.xml.namespace.QName;  import javax.xml.ws.Service;  import javax.xml.ws.WebEndpoint;  import javax.xml.ws.WebServiceClient;  import javax.xml.ws.WebServiceFeature;  /**   * This class was generated by the JAX-WS RI.   * JAX-WS RI 2.1.1 in JDK 6   * Generated source version: 2.1   *    */  @WebServiceClient(name = "HelloService", targetNamespace = "http://endpoint.helloservice/", wsdlLocation = "http://localhost:7001/WebRoot/HelloService?wsdl")  public class HelloService      extends Service  {      private final static URL HELLOSERVICE_WSDL_LOCATION;      static {          URL url = null;          try {              url = new URL("http://localhost:7001/WebRoot/HelloService?wsdl");          } catch (MalformedURLException e) {              e.printStackTrace();          }          HELLOSERVICE_WSDL_LOCATION = url;      }        public HelloService(URL wsdlLocation, QName serviceName) {          super(wsdlLocation, serviceName);      }        public HelloService() {          super(HELLOSERVICE_WSDL_LOCATION, new QName("http://endpoint.helloservice/", "HelloService"));      }      /**       *        * @return       *     returns Hello       */      @WebEndpoint(name = "HelloPort")      public Hello getHelloPort() {          return (Hello)super.getPort(new QName("http://endpoint.helloservice/", "HelloPort"), Hello.class);      }      /**       *        * @param features       *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the features parameter will have their default values.       * @return       *     returns Hello       */      @WebEndpoint(name = "HelloPort")      public Hello getHelloPort(WebServiceFeature... features) {          return (Hello)super.getPort(new QName("http://endpoint.helloservice/", "HelloPort"), Hello.class, features);      }  }

2.6 建一个名为HelloClient的Web应用作为WebService客户端。

2.7 将3.5.3生成的JAVA文件复制到HelloClient的src下。

2.8 新建一个HelloServlet文件,如下:

package webclient; import helloservice.endpoint.HelloService; 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;  @WebServlet(name = "HelloServlet", urlPatterns = { "/HelloServlet" }) public class HelloServlet extends HttpServlet {     @WebServiceRef(wsdlLocation = "http://localhost:7001/WebRoot/HelloService?wsdl")     private HelloService service;      /**      * Constructor of the object.      */     public HelloServlet() {         super();     }     /**      * Destruction of the servlet. 
*/ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet.
* * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * The doPost method of the servlet.
* * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Initialization of the servlet.
* * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } /** * Processes requests for both HTTP GET and POST * 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"); PrintWriter out = response.getWriter(); try { out.println(""); out.println(""); out.println("Servlet HelloServlet"); out.println(""); out.println(""); out.println("

Servlet HelloServlet at " + request.getContextPath() + "

"); out.println("

" + sayHello("world") + "

"); out.println(""); out.println(""); } finally { out.close(); } } // doGet and doPost methods, which call processRequest, and // getServletInfo method private String sayHello(java.lang.String arg0) { helloservice.endpoint.Hello port = service.getHelloPort(); return port.sayHello(arg0); } }

2.9 配置HelloClient的Web.xml,增加如下代码:

     HelloServlet      HelloServlet     HelloServlet     webclient.HelloServlet         HelloServlet     /servlet/HelloServlet   

2.10 发布HelloClient应用。

2.11 在IE录入http://localhost:7111/servlet/HelloServlet

页面内容如下说明WebService调用成功!

关于"如何使用JDK1.6的JAX-WS编写WebService"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文件 应用 客户 客户端 生成 成功 内容 目录 篇文章 运行 更多 不错 实用 万维网 代码 同级 命令 文件夹 文章 概念 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全安全教育教案 日志 事物数据库 翻译 技术支持和软件开发工资 软件开发问题归纳总结 开源软件开发技术课程 vagrant配置数据库 数据库什么是实体举例说明 江苏常州网络安全公司 世界最大第二服务器供应商的股票 找不到内网id服务器ip地址 末日之刃服务器人口普查2022 论文的数据库设计怎么写 软件开发起诉互联网公司 网络安全奖项名称 蠡县软件开发项目管理承诺守信 北京数据软件开发过程服务标准 十堰二汽软件开发的怎么样 迅必网络技术有限公司 软件开发最赚钱的方法 文通科技互联网大会名片 我的世界服务器地皮怎么删除指令 老吴软件开发 sql 判断数据库类型 网络安全检查类别 南京学编程软件开发 数据库概论第五版网盘资源 jsp访问数据库查询单行数据 数据库挖掘竞赛 计算机网络技术题目有哪些 美国网络安全资格证
0