`
suhuanzheng7784877
  • 浏览: 704281 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47749
社区版块
存档分类
最新评论

JavaEE5学习笔记09-将EJB发布成WebService总结(1)

阅读更多

1.       EJB发布成,或者说暴露成Web服务(也许更贴切),在EJB容器中不是困难的事情,只要容器实现了JavaEEJAX-WS标准就行了,开发人员要做的就是增加一点点有关WebService的注解,打包发布到应用容器即可。不过在笔者使用JBoss5作为EJB容器的时候,调用Web服务出现了异常~~~最后发现是JDK版本的问题,改用JDK1.5编译EJB类、启动JBoss后才能正常调用。这个问题先留着,回头使用JBoss6的时候在试试吧~~~~

2.       helloworld服务端代码

服务端不用再强制规定WebService必须实现一个接口了,而一个普通的POJO+EJB注解的类就可以当做WebService服务器类。

代码如下:

package webservice.HelloWebService;

 

import javax.ejb.Stateless;

import javax.jws.WebService;

 

@Stateless

@WebService(name = "HelloWebService")

public class HelloWebService {

    public String sayHello(String name) {

       System.out.println("客户端调用了服务器端的代码");

       return "你好:" + name+",传授给你武功--旋空斩";

    }

}

将此类打包部署到JBoss容器中,重启JBoss,打开链接

http://127.0.0.1:8080/jbossws看到如下界面

 选择View a list of deployed services查看webservice列表

 

点击链接即可看到WSDL文档

<definitions name='HelloWebServiceService' targetNamespace='http://HelloWebService.webservice/' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://HelloWebService.webservice/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

 <types>

  <xs:schema targetNamespace='http://HelloWebService.webservice/' version='1.0' xmlns:tns='http://HelloWebService.webservice/' xmlns:xs='http://www.w3.org/2001/XMLSchema'>

   <xs:element name='sayHello' type='tns:sayHello'/>

   <xs:element name='sayHelloResponse' type='tns:sayHelloResponse'/>

   <xs:complexType name='sayHello'>

    <xs:sequence>

     <xs:element minOccurs='0' name='arg0' type='xs:string'/>

    </xs:sequence>

   </xs:complexType>

   <xs:complexType name='sayHelloResponse'>

    <xs:sequence>

     <xs:element minOccurs='0' name='return' type='xs:string'/>

    </xs:sequence>

   </xs:complexType>

  </xs:schema>

 </types>

 <message name='HelloWebService_sayHelloResponse'>

  <part element='tns:sayHelloResponse' name='sayHelloResponse'></part>

 </message>

 <message name='HelloWebService_sayHello'>

  <part element='tns:sayHello' name='sayHello'></part>

 </message>

 <portType name='HelloWebService'>

  <operation name='sayHello' parameterOrder='sayHello'>

   <input message='tns:HelloWebService_sayHello'></input>

   <output message='tns:HelloWebService_sayHelloResponse'></output>

  </operation>

 </portType>

 <binding name='HelloWebServiceBinding' type='tns:HelloWebService'>

  <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>

  <operation name='sayHello'>

   <soap:operation soapAction=''/>

   <input>

    <soap:body use='literal'/>

   </input>

   <output>

    <soap:body use='literal'/>

   </output>

  </operation>

 </binding>

 <service name='HelloWebServiceService'>

  <port binding='tns:HelloWebServiceBinding' name='HelloWebServicePort'>

   <soap:address location='http://127.0.0.1:8080/EJBWebService/HelloWebService'/>

  </port>

 </service>

</definitions>

 

1.       客户端测试程序

我们使用IDE工具生成客户端代码,在MyEclipse中选择new菜单,选择Web服务客户端,如下图所示

 选择生成代码的目标项目和类型

 之后输入WSDL文档的URL位置,如下图所示

 之后选择Next进入加入依赖包的选项

如果不加入任何依赖包也可以,可以手工下载CXF项目(http://cxf.apache.org/),将它的lib下的wsdl4j-version.jarXmlSchema-version.jar拷贝到客户端Classpath下面就行。

之后生成的代码如下

 

其中HelloWebServiceService是需要客户端稍微关心一下的类,客户端调用这个类的方法就能调到服务器端的代码。测试程序如下

 

    public static void main(String[] args) {

    HelloWebServiceService helloWebServiceService = new HelloWebServiceService();

       HelloWebService helloWebService = helloWebServiceService.getHelloWebServicePort();

       System.out.println(helloWebService.sayHello("单锋剑尊"));

    }

  • 大小: 55.7 KB
  • 大小: 28.8 KB
  • 大小: 53 KB
  • 大小: 40.1 KB
  • 大小: 54.4 KB
  • 大小: 43.4 KB
  • 大小: 21.4 KB
分享到:
评论

相关推荐

    JavaEE5学习笔记05-EJB之会话Bean总结

    ### JavaEE5学习笔记05-EJB之会话Bean总结 #### EJB(Enterprise JavaBeans)简介 EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于开发和部署可重用的服务组件。EJB规范定义了如何编写、部署以及管理企业...

    JavaEE5学习笔记07-Web层与EJB集成总结

    ### JavaEE5学习笔记07-Web层与EJB集成总结 #### 一、JavaEE5框架中的Web层与EJB集成概述 在JavaEE5(即Java Platform, Enterprise Edition 5)中,Web层与EJB(Enterprise JavaBeans)的集成是构建企业级应用的...

    JavaEE5学习笔记06-EJB之消息驱动Bean总结

    ### Java EE 5 学习笔记06:EJB之消息驱动Bean总结 #### EJB 消息驱动 Bean (Message Driven Bean, MDB) 在Java EE 5中,消息驱动Bean(MDB)是一种特殊的EJB组件,它主要用于处理异步消息。MDB能够接收并处理由...

    JavaEE5学习笔记01-JTA和数据库事务

    ### JavaEE5学习笔记01-JTA和数据库事务:深入解析与应用 #### 一、JavaEE5概览与核心组件 JavaEE5是Java Enterprise Edition的第五个版本,标志着企业级Java应用的一个重要里程碑。它引入了一系列重要的新特性,...

    JavaEE5学习笔记02-JNDI与RMI

    总结来说,JNDI和RMI在JavaEE5中提供了强大的服务发现和分布式对象通信能力,使得开发者能够构建可扩展、模块化的企业级应用。通过JNDI,应用可以轻松地查找和利用服务器上的资源,而RMI则为远程对象的调用提供了...

    JavaEE5学习笔记04-JavaMail使用总结---3

    这篇学习笔记主要聚焦于JavaMail在JavaEE5中的使用,通过深入理解其核心概念和实践操作,我们可以更好地在实际项目中应用这一工具。 JavaMail API提供了一套标准的接口,允许Java应用程序发送和接收电子邮件。它...

    javaee-api-8.0-javadoc.jar

    javaee-api-8.0-javadoc.jar,这是javaee1.8api的jar包,解压后可用javadoc2chm制作成chm帮助文档。

    JavaEE源代码 struts2-core-2.0.11

    JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源...

    JavaEE源代码 struts2-spring-plugin-2.0.11

    JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-...

    javaee-api-6.0-5

    java javaee-api-6.0-5

    JavaEE源代码 jaxen-1.1-beta-7

    JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-...

    JavaEE源代码 commons-logging-1.0.4

    JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-...

    JavaEE源代码 commons-collections-2.1.1

    JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源...

    javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全).zip

    javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-...

    javaee5-doc-api

    Java EE 5是这个平台的一个重要版本,它在2006年发布,带来了许多改进和新特性,旨在简化开发过程并提高生产力。在这个“javaee5-doc-api”压缩包中,包含的是Java EE 5的官方API文档,对于开发者来说是一份非常重要...

    JavaEE源代码 antlr-2.7.6rc1

    JavaEE源代码 antlr-2.7.6rc1JavaEE源代码 antlr-2.7.6rc1JavaEE源代码 antlr-2.7.6rc1JavaEE源代码 antlr-2.7.6rc1JavaEE源代码 antlr-2.7.6rc1JavaEE源代码 antlr-2.7.6rc1JavaEE源代码 antlr-2.7.6rc1JavaEE源...

    JavaEE源代码 jstl-1.2

    JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源代码 jstl-1.2JavaEE源...

Global site tag (gtag.js) - Google Analytics