J2EE web service开发(五)把ejb发布为web服务
把 ejb 作为 web 服务发布比 JSE 端点要复杂些 . 并且只有无状态会话 Bean 才能发布成 Web 服务 . 利用 ejb 的一大好处就是容器管理的事务 . 但是 spring 同样能做到这个 , 这一点不再具有很大的吸引力了 . 那么剩下的好处估计就只有用在必须用 ejb 的情况下又同时需要 web 服务这种情况了 . EJB 端点跟 JSE 端点跟一个不同点在于 : 不需要在 web.xml 文件中配置 servlet 映射 , 但是需要在 ejb-jar.xml 文件中配置 web 服务端点接口 . 另一个不同之处就是不需要一个实现 web 服务接口的具体类 . Jboss 4.04 版本下具体实现 .
建立一个无状态会话 bean
package ejb; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.ejb.CreateException; public class WebServiceBean implements SessionBean { SessionContext sessionContext; public void ejbCreate() throws CreateException { } public void ejbRemove() { } public void ejbActivate() { } public void ejbPassivate() { } public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } public void hello() { System.out.println("hello"); } } package ejb; import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface WebService extends EJBObject { public void hello() throws RemoteException; } package ejb; import javax.ejb.EJBHome; import javax.ejb.CreateException; import java.rmi.RemoteException; public interface WebServiceBeanHome extends EJBHome { public WebService create() throws CreateException, RemoteException; }
没有什么好多说的 .
定义一个 Web 服务接口
package ejb; import java.rmi.*; public interface WebServiceTest extends Remote { public void hello() throws RemoteException; }
生成 Web 服务所需的配置文件 :
< configuration xmlns="http://www.jboss.org/jbossws-tools" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.org/jbossws-tools http://www.jboss.org/jbossws-tools/schema/jbossws-tool_1_0.xsd"> < java-wsdl> < service name="WebServiceTest" style="rpc" endpoint="ejb.WebServiceTest"/> < namespaces target-namespace="http://ejb" type-namespace="http://ejb"/> < mapping file="jaxrpc-mapping.xml"/> < webservices ejb-link="WebServiceBean"/> < /java-wsdl> < /configuration>
利用 Jboss 自带的工具生成 Web 服务所需要的布署文件 . wstools -cp classes -config wstools-config.xml
把生成的布署文件放到 META-INF 文件夹而不是 JSE 端点的 web-INF 文件夹下 .
修改 ejb-jar.xml 文件加上 ejb.WebServiceTest 元素 , 注意顺序 .OK 打包发布 .
客户端调用程序
相关推荐
celerylxq 2015-04-09
大数据实战派 2015-09-01
Gin工作室 2012-12-04
powerful 2013-10-20
xuguokun 2012-05-03
编程点滴 2012-02-14
Enjoyendless 2016-07-02
yangyong 2014-09-30
fightgirl 2013-06-27
BlogForUS 2013-05-13
systemxgl 2013-03-19
haidaoxianzi 2013-03-05
大米时代李东龙 2012-12-07
LemonSnm 2012-10-24
职业炮灰 2012-07-31
Assdqd 2012-05-25
MyIgnorance 2012-05-22
wangteng 2012-02-23
usstlidawei 2011-12-12