EJB开发web service

服务端的开发

用EJB就行服务端开发是非常简单的,EJB可以把无状态会话bean通过@WebService注解瞬间暴露为web服务。

例子

@Stateless

@Remote(JsunSer.class)

@WebService

public class JsunSerImpl implements JsunSer{

@WebMethod

public String run() {

return "succ";

}

 

public String run2(){

return "error";

}

}

如果不加@WebMethod那么所有的public 方法都会被暴露为服务,加了就只有run()被暴露为服务。

发布EJB,http://localhost:8080/jbossws/services查看发布的服务里面有wsdl地址

如图

http://127.0.0.1:8080/EJB_WebService/JsunSerImpl?wsdl

就是服务地址,开发客户端的时候会用到,现在一个服务就发布好了

在wsdl中有三个元素注意

wsdl的命名空间会默认以  http://+项目包名

服务的接口端点默认  接口名+Bean

服务的名称默认以     实现类+Service

以上都可以在注解 @WebService 中修改定义

客户端的开发

需要JAX-WS帮助我们自动生成java文件

http://jax-ws.dev.java.net下载最新的

解压打开lib目录将其中的jar文件全部copy到项目的lib目录下(没有lib建一个)

再利用ant build.xml文件运行

build.xml

<?xml version="1.0"?> 

<project name="client_ws" default="wsclientgen" basedir="."> 

<property name="src.dir" value="${basedir}/src" /> 

<path id="build.classpath" description="设置类路径">

<fileset dir="${basedir}/lib">

<include name="*"/>

</fileset>

</path>

 

<target name="wsclientgen" description="生成web服务客户端"> 

<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="build.classpath"/>

<wsimport 

wsdl="http://127.0.0.1:8080/EJB_WebService/JsunSerImpl?wsdl" 

sourcedestdir="${src.dir}"

        package="com.jsun" 

keep="true" 

verbose="true" 

destdir="${basedir}/bin"/>

</target>

</project> 

其中keep指如果原来存在旧文件存在是否替换,verbose是否显示生成细节,destdir指编译后class文件存放的目录

运行ant 就会看到

java文件自动生成了

我们在调用时 如

JsunSer j=new JsunSer();

JsunSerImpl jl=j.getJsunPort();

jl就是我们要使用的对象

JsunSer是服务端项目中的接口类的名字

JsunSerImpl是自动生成的

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值