改造原来的ejb3项目为web service
1.修改会话bean如下:
package com.persia.ejb; import javax.ejb.Stateless; import javax.jws.WebMethod; import javax.jws.WebService; @Stateless @WebService public class UserManagerBean implements UserManager { @WebMethod public void addUser(User user) { // TODO Auto-generated method stub System.out.println("User[username="+user.getUsername()+"]已经成功保存"); user.setId(10); } @WebMethod public String sayHello(String msg) { // TODO Auto-generated method stub return "hello web service "+msg; } }
要求无状态
2.去除user实体bean的序列化
3.JBOSS启动报错
在启动时报了一个错误:
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file://build/web/WEB-INF/lib/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
解决方法:找一个jaxb-api.jar的包(比如从netbeans目录下搜索一下),复制到jboss-5.0.0.CR1\lib\endorsed目录下去,就能正常启动了。
wsdl文件在D:\DevelopTool\jboss-4.2.2.GA\server\default\data\wsdl\UserWS.jar
可以测试访问http://localhost:8080/UserWS/UserManagerBean?wsdl开是否成功
编写web services客户端
1.创建java 项目
2.创建web service client
org.codehaus.xfire.XFireRuntimeException: Could not invoke service 。。。。Server returned error code = 404 for URI
是jboss服务器没有启动