关闭

Geronimo下部署WebService

标签: webserviceweb服务servlet工具myeclipseant
1424人阅读 评论(0) 收藏 举报
分类:
Geronimo(以下简称G)下的Web服务开发,部署,测试 例子介绍: 在G下布署一个HelloWorld的Servlet,该Servlet只有一个方法getHelloWorldName,返回一字符串。以Web服务的方式部署到G中,调用这个Web服务的网址为: http://localhost:8080/HelloWorld/ldt Web服务开发过程: 1、J2EE 1.4规范中的Web服务,需要提供以下几个文件: 1) Web服务的接口。供外部应用调用的接口,本例中是:HelloWorldInterface 2) WSDL描述文件。本例中是:WebRoot/META-INF/HelloWorld.wsdl 3) JAX-RPC Mapping文件。本例中是:WebRoot/META-INF/helloworld-server-jaxrpc-mapping.xml 4) 对Web服务进行配置的webservices.xml文件 5) web服务对应的实现类,可以是Servlet,EJB等。在web.xml中进行配置,以供webservices.xml中进行引用这是这里面的2)3)两个文件可以用工具进行生成,并且经过一些必要修改。下面会提到这些工具,以及所要做的修改。 2、开发步骤 1)新建一个Web Application。我用的是MyEclipse。其实直接建立一个Java工程也行。差别不大。WebServicesTest 2)新建接口。包.HelloWorldInterface.java 3)实现接口。包.HelloWorldImpl.java。另:上面是说这个类是Servlet,但这里并没有继承HttpServlet。实不实现这个类都是可以的。 4)由HelloWorldInfterface.java接口生成wsdl。这里我选用了AXIS中自带的工具:java2wsdl。用Ant任务来完成。为了能过使用Ant,在工程中加入Axis中Lib中的Jar包。 location="http://localhost:8080/HelloWorld/ldt" namespace=http://ldt.com/servlet/HelloWorldInfterface output="${basedir}/WebRoot/WEB-INF/HelloWorld.wsdl" style="RPC" bindingname="HelloWorldBinding" serviceelementname="HelloWorldService" serviceportname="HelloWorldServicePort"> Java2wsdl中Ant任务参数可以查看:http://ws.apache.org/axis/java/ant/axis-java2wsdl.html 5)生成JAX-RPC Mapping文件。所使用的工具是:Sun 公司的J2EE服务器下自带的wscompile工具。Wscompile工具的参数与设置,可以参看http://www.huihoo.org/openweb/java_web_services_tutorial/JAXRPC6.html。在这里,先生成etc/hello-world-config.xml。然后在cmd窗口,用wscompile生成JAX-RPC的Mapping文件。存储在WebRoot/META-INF/helloworld-server-jaxrpc-mapping.xml 注意:这时所生成的mapping文件,最好要结合HelloWorld.wsdl文件相对照,看看Message的Part的名称,Namespace是否一至。我在生成Mapping文件时,就发现getHelloWorldName的返回消息的名称以及消息的Part与HelloWorld.wsdl不一样。这可能是用两个不同的工具生成的原因吧。 6) 配置webservices.xml文件。 HelloWorldTest META-INF/HelloWorld.wsdl META-INF/helloworld-server-jaxrpc-mapping.xml ldt HelloWorldServicePort com.ldt.servlet.HelloWorldInterface HelloWorldWS 7) 配置Web.xml。就是把那个HelloWorldImpl以一个Servlet方式配置就可以了 8) 打成War包。War包中的结构是: HelloWorld.war |------------META-INF |----HelloWorld.wsdl |----helloworld-server-jaxrpc-mapping.xml |------------WEB-INF |----classes(包括HelloWorldInterface,HelloWorldImpl) |----webservices.xml |-----web.xml 9)用G的/bin下面的Deploy.bat部署HelloWorld.war包 3、开发JSE的Client端。 因为在客户端方面,要连接到服务器上得到Web服务,就要依据web服务的wsdl生成Stub和JavaBean。和客户端接口等。这些类,可以用Axis的wsdl2java工具来完成。Wsdl2java的ant任务的属性可以查看:http://ws.apache.org/axis/java/ant/axis-wsdl2java.html。然后用ant生成项目中:com.ldt.helloworldws.j2seclient.generated下面的:HelloWorldBindingStub.java;HelloWorldInterface.java;HelloWorldService.java;HelloWorldServiceLocator.java。然后依据这些类,就可以调用刚刚发布的War包中的web服务了。
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:55984次
    • 积分:851
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:9篇
    • 译文:1篇
    • 评论:17条
    最新评论