利用webservice实现跨项目调用接口

先创建好被调用的class类

/**

* Title: ServiceHello

* Description: 基于jdk1.6以上的javax.jws 发布webservice接口

                @WebService - 它是一个注解,用在类上指定将此类发布成一个ws

                Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解

                对象绑定到一个地址的端口上。

* Version:1.0.0  

* @author panchengming

 */

@WebService  

public class JwsServiceHello {

 

    /** 供客户端调用方法  该方法是非静态的,会被发布

     * @param name  传入参数

     * @return String 返回结果

     * */

    public String getValue(String name){

        return "欢迎你! "+name;

    }

 

    /**

     * 方法上加@WebMentod(exclude=true)后,此方法不被发布;

     * @param name

     * @return

     */

    @WebMethod(exclude=true)  

    public String getHello(String name){

        return "你好! "+name;

    }

 

    /** 静态方法不会被发布

     * @param name

     * @return

     */

    public static String getString(String name){

        return "再见!"+name;

    }

 

 

     //通过EndPoint(端点服务)发布一个WebService

    public static void main(String[] args) {

     /*参数:1,本地的服务地址;

           2,提供服务的类;

      */

     Endpoint.publish("http://localhost:8080/Service/ServiceHello", new JwsServiceHello());

     System.out.println("发布成功!");

     //发布成功后 在浏览器输入 http://localhost:8080/Service/ServiceHello?wsdl

    }

}

 

发布成功之后在cmd下输入

wsimport -keep -p com.demo.client -d D:\\(存放的地址) http://XX/Account?wsdl(wsdl地址)

示例: wsimport -s E:\java\web\src -p com.pcm.ws.jws -keep http://localhost:8080/Service/ServiceHello?wsdl

命令参数说明: 
-d:生成客户端执行类的class文件的存放目录(默认存放在C:\Users\Administrator\) 
-s:生成客户端执行类的源文件的存放目录(默认存放在C:\Users\Administrator\) 
-p:定义生成类的包名

 

先可以在本项目上测试一下  

 

    public static void main(String[] args) {
        //调用webservice
       JwsServiceHello hello=new JwsServiceHelloService().getJwsServiceHelloPort();
       String name=hello.getValue("ws");
       System.out.println(name);
   }

如果控制台打印出字符那说明成功

 

如果发布成功之后,别的项目想调用可以直接在cmd中将

wsimport -keep -p com.demo.client -d D:\\(存放的地址) http://XX/Account?wsdl(wsdl地址)

存放的地址写成想调用的那个项目地址 后面的http地址便是发布成功之后的地址

猜你喜欢

转载自blog.csdn.net/nvisalsd/article/details/81147891
今日推荐