• JAXWS发布WebService


    JAX-WS(Java API for XML-Web Services)

    环境说明:
    MyEclpose 6.6

    jdk 1.6.0_15
    tomcat 6.0

    创建并发布服务器端应用

    1.新建web service project
    设置如下图。


    2.建立一个实现类,代码如下:

     

    复制代码
    package net;

    public class addImpl {
        
    public double add(double num1,double num2){
            
    return num1+num2;        
        }
    }
    复制代码

     


    这里只需要实现类,不再像XFIRE还需要一个接口。
    ps:Web服务可用单个Java类的实现,但是最好是用“接口+实现”的方式来实现
    3.建立web 
    service
    选择工程名,点击工具栏的new web service按钮。


    然后如下配置:

    接着(在JAVA BEAN中输入实现类的名称,选择generate wsdl in project):

    点击finish后包中多出一个该实现类的代理类addImplDelegate.java

    4.导入包
    工程-属性-build path-add library-myeclipse libraries导入以下两个包:

    如果缺少这两个包,tomcat启动时会出现以下错误: 

    严重: Error configuring application listener of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener
    java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener

     


    5.启动tomcat,验证并获取WSDL文件

    启动tomcat后在浏览器中输入http://localhost:8080/jaxws_src/addImplPort并点击页面中的链接查看WSDL文件,如果该文件能正确显示证明服务器端大功告成。
    wsdl文件的uri是http://localhost:8080/jaxws_src/addImplPort?wsdl(你可能会问URI中的addImplPort从何而来,其实这个名字由图4中的Services port设定)

     

    ps:在web.xml中有如下类容,可看出这个/addImplPort的作用

    复制代码
    代码
     <servlet>
          
    <description>JAX-WS endpoint - addImplService</description>
          
    <display-name>addImplService</display-name>
          
    <servlet-name>addImplService</servlet-name>
          
    <servlet-class>
              com.sun.xml.ws.transport.http.servlet.WSServlet
          
    </servlet-class>
          
    <load-on-startup>1</load-on-startup>
      
    </servlet>
      
    <servlet-mapping>
          
    <servlet-name>addImplService</servlet-name>
          
    <url-pattern>/addImplPort</url-pattern>
      
    </servlet-mapping>
    复制代码

     

     




    创建客户端调用

    (不要关闭TOMCAT啊,不然。。。。。)
    1.新建java project,建立一包(包名安需求)net.
    2.选择包点new web services client(参照本文的第二张图)
       ps:有别与xfire,客户端不一定是服务端相同类型的web services client,可以是一个普通的工程也OK!!
    3.指定wsdl的URI或wsdl的文件路径(见上)。
    程序在net包中生成一些类如图:

    ps:图中的add.java是一个javabean来,聪明的你应该知道它有啥用了吧!!
    4.新建一个测试类:

     

    复制代码
    package com;

    import net.AddImplDelegate;
    import net.AddImplService;

    public class test {    
        
    public static void main(String[] args) {
            AddImplService service
    =new AddImplService();
            AddImplDelegate d
    = service.getAddImplPort();
            
    double result= d.add(15.612.5);
            System.out.println(result);
        }
    }
    复制代码

     

     

  • 相关阅读:
    HISI MPP模块 AO 和 ADEC 参数配置(转)
    HISI H264/H265 P帧帧内刷新功能,降低I帧太大带来的网络冲击(转)
    LiteOS系统--快速烧写.bin文件到norflash相应位置(转)
    海思平台(hi3559av100)的pq_sample代码编译过程和执行过程(转)
    MySQL主从同步配置
    WebLogic
    为什么公司用weblogic而不用tomcat?
    查看和更改rpm的默认安装路径的方法
    VM options 以及 properties文件的一些理解
    Could not transfer artifact xxx from/to xxx解决方案
  • 原文地址:https://www.cnblogs.com/huminxxl/p/3101513.html
Copyright © 2020-2023  润新知