`

使用JAX-WS standard Endpoint APIs开发WebService完整的例子

 
阅读更多
编程发布WebService方式的完整例子
WS服务端:
(1)HelloWorld.java接口
package com.xxx.ws.code.server;  
  
import javax.jws.WebService;  
  
@WebService  
public interface HelloWorld {  
    String sayHi(String text);  
} 


(2)实现类HelloWorldImpl.java
package com.xxx.ws.code.server.impl;  
  
import javax.jws.WebService;  
  
import com.xxx.ws.code.server.HelloWorld;  
  
@WebService(endpointInterface = "com.xxx.ws.code.server.HelloWorld",  
        serviceName = "HelloWorld")  
public class HelloWorldImpl implements HelloWorld {  
      
    public String sayHi(String text) {  
        System.out.println("sayHi called");  
        return "Hello " + text;  
    }  
  
}


(3)发布web service
package com.xxx.ws.code.server;  
  
//import javax.xml.ws.Endpoint;  
  
import org.apache.cxf.interceptor.LoggingInInterceptor;  
import org.apache.cxf.interceptor.LoggingOutInterceptor;  
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;  
  
import com.xxx.ws.code.server.impl.HelloWorldImpl;  
  
public class RunCXFServer {  
  
    protected RunCXFServer() throws Exception {  
        // START SNIPPET: publish  
        System.out.println("Starting Server");  
        HelloWorldImpl implementor = new HelloWorldImpl();  
        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();  
        svrFactory.setServiceClass(HelloWorld.class);  
        svrFactory.setAddress("http://localhost:8002/helloWorld");  
        svrFactory.setServiceBean(implementor);  
        svrFactory.getInInterceptors().add(new LoggingInInterceptor());  
        svrFactory.getOutInterceptors().add(new LoggingOutInterceptor());  
        svrFactory.create();  
  
        // END SNIPPET: publish  
    }  
  
    public static void main(String args[]) throws Exception {  
        new RunCXFServer();  
        System.out.println("Server ready...");  
    }  
}


(4)运行RunCXFServer
http://localhost:8002/helloWorld?wsdl就可以看到输出的saop envelope了.

编写客户端调用WebService
package com.xxx.ws.code.client;  
  
//import javax.xml.namespace.QName;  
//import javax.xml.ws.Service;  
//import javax.xml.ws.soap.SOAPBinding;  
  
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  
import org.apache.cxf.interceptor.LoggingInInterceptor;  
import org.apache.cxf.interceptor.LoggingOutInterceptor;  
  
import com.xxx.ws.code.server.HelloWorld;  
  
public class RunCXFCodeClient {  
    public static void main(String args[]) throws Exception {  
  
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
        factory.getInInterceptors().add(new LoggingInInterceptor());  
        factory.getOutInterceptors().add(new LoggingOutInterceptor());  
        factory.setServiceClass(HelloWorld.class);  
        factory.setAddress("http://localhost:8002/helloWorld");  
        HelloWorld client = (HelloWorld) factory.create();  
  
        String reply = client.sayHi("HI");  
        System.out.println("Server said: " + reply);  
  
    }  
      
}

分享到:
评论
3 楼 bjyzxxds 2012-08-19  
ak_47ab 写道
楼主,请问你,Client端 main方法里面的 
factory.setServiceClass(HelloWorld.class);  HelloWorld 是服务端的类名,如果在不知道类名的情况下怎么处理呢??


其实只要有了wsdl,客户端的代码是可以用axis生成的,生产的代码中需要用到的类全都有了。帖子中的只是调用方式之一
2 楼 ak_47ab 2012-08-18  
楼主,请问你,Client端 main方法里面的 
factory.setServiceClass(HelloWorld.class);  HelloWorld 是服务端的类名,如果在不知道类名的情况下怎么处理呢??
1 楼 lg_asus 2012-06-21  
你这并不全是jax-ws, 后面的发布和客户端调用你用的是cxf。

你前面的接口和实现类不用WebService注解应该也可以的。

相关推荐

    使用JAX-WS(JWS)发布WebService

    使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...

    如何基于JAX-WS开发一个WebService实例

    本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式来创建SOAP(Simple Object Access Protocol)Web服务,它集成了Java SE和Java EE平台,使得...

    webservice之jax-ws

    开发者可以使用诸如Apache CXF、Metro等开源框架来支持JAX-WS的开发,这些框架提供了更多的功能,如WS-Security、WS-Policy等扩展,同时简化了开发过程。 8. **示例** 在提供的链接...

    JAX-WS_WebService.rar

    JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht

    jax-rs jax-ws所需包,亲测可用

    标题"jax-rs jax-ws所需包,亲测可用"表明这个压缩包包含了用于开发Java RESTful Web服务(JAX-RS)和Java SOAP Web服务(JAX-WS)所需的库文件。这些库是Java应用程序进行Web服务交互的核心组件,确保了对HTTP协议...

    Jax-ws所需要的JAR包

    在实际应用中,使用JAX-WS进行Web服务开发时,开发者需要定义服务接口和实现,然后通过注解或部署描述符来配置服务。服务可以通过HTTP协议暴露,客户端则可以通过生成的Stub类或者使用JAX-WS的`Service`类来调用这些...

    jax-ws api jar包

    - **简单性**:JAX-WS使用注解和Java语言特性,使得Web服务的开发更加直观和简洁。 - **互操作性**:遵循SOAP和WSDL标准,确保与不同平台和语言的服务进行交互。 - **可扩展性**:支持WS-Security、WS-...

    jax-ws webservice demo

    基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...

    jax-ws WebService客户端与服务端工程.rar

    这个"jax-ws WebService客户端与服务端工程.rar"压缩包文件包含了一个完整的示例,展示了如何使用JAX-WS创建和消费Web服务。让我们深入探讨一下JAX-WS的核心概念和技术。 1. **Web服务基础**: - **SOAP(Simple ...

    jax-ws实现webservice调用

    使用JAX-WS,你可以通过添加注解(如`@WebService`)或使用XML配置文件来部署服务。对于简单的应用,注解方式更常见。例如,部署到Tomcat服务器时,只需确保服务类位于正确的包结构中,然后启动服务器。 ### 4. ...

    一个包含jax-ws和jax-rs的例子(含服务端和客户端)

    标题中的“一个包含jax-ws和jax-rs的例子(含服务端和客户端)”是指这是一个示例项目,它演示了如何使用Java API for XML Web Services (JAX-WS)和Java API for RESTful Web Services (JAX-RS)来创建和消费Web服务。...

    jax-ws发布webservice

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。...在"jax-ws-server"和"jax-ws-client"这两个目录中,你可以找到完整的示例代码,帮助你理解和实践JAX-WS的使用。

    基于JDK自带的Web服务JAX-WS实现WebService的简单示例

    Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包...还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK环境要求1.6及以上版本。

    jax-ws webservice简单demo

    在"jax-ws webservice完整demo"中,你可以通过查看源码了解每个组件的具体实现,并学习如何将它们组合在一起,形成一个完整的Web服务。此外,通过运行提供的测试代码,你可以验证Web服务是否正常工作。这个例子是一...

    基于JAX-WS2.2开发WebService所需jar资源包

    使用 Eclipse JavaEE 开发 WebService 时,若选择手动创建原生的JAX-WS服务,需要导入此jar资源(教程详见我的博文https://blog.csdn.net/weixin_50604409/article/details/116399530)。 如果您同时装有 IntelliJ ...

    JAX-WS 2.2 RI所有相关jar包

    JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...

    JAX-WS2.0 API

    5. **数据绑定:**JAX-WS使用JAXB(Java Architecture for XML Binding)进行数据绑定,将XML数据自动转换为Java对象和反之亦然。这使得处理XML消息变得更简单,减少了手动解析XML的必要。 6. **异常处理:**JAX-WS...

    metro-jax-ws-jaxws221x.zip

    【标题】"metro-jax-ws-jaxws221x.zip" 提供的是一个关于JAX-WS(Java API for XML Web Services)的开发示例,其中包含了JAX-WS 2.2.1版本的相关组件和库文件。这个压缩包是针对Java开发者设计的,用于帮助他们理解...

    解决weblogic部署JAX-WS需要的配置文件

    在WebLogic服务器上部署JAX-WS服务时,可能会遇到一些配置问题。JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和部署Web服务。WebLogic作为一款强大的Java EE应用服务器,支持JAX-WS...

Global site tag (gtag.js) - Google Analytics