EJB2.1可以将无状态会话Bean暴露为WebService
1.定义WebService服务接口(Endpoint Inteface),通过标注@WebService来指明这是一个WebService的服务接口,通过标注@WebMethod来指明要暴露的服务方法,@WebMethod是可选的,如果没有指明@WebMethod,则所有方法暴露为WebService服务方法。
package examples.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
@WebMethod
public String hello();
}
2.实现一个无状态的会话Bean,实现服务接口。通过标注@WebService指明该无状态的会话Bean暴露为WebService,@WebService的属性endpointInterface指明WebService服务接口。
package examples.ws;
import javax.ejb.Stateless;
import javax.jws.WebService;
@WebService(endpointInterface="examples.ws.HelloWorld",serviceName="Greeter",portName="GreeterPort")
@Stateless
public class HelloBean implements HelloWorld {
public String hello() {
return "Hello World";
}
}
3.将上述EJB发布到EJB容器中。EJB容器会生成相应得WSDL文件和WebService.xml,也可以自己提供WSDL文件和WebService.xml,放在EJB-jar的META-INF文件夹下。生成得wsdl文件片段如下:
<service name="Greeter">
<port name="GreeterPort" binding="tns:GreeterPortBinding">
<soap:address location="http://[host]:8080/Greeter/HelloBean" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/>
</port>
</service>
4.客户端代码:
import examples.ws.HelloWorld;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class WebServiceClient {
static String host = "localhost";
static String portType = "HelloBean";
static String serviceName = "Greeter";
static String serviceEndpointAddress = "http://" + host + ":8080/" + serviceName;
static String nameSpace = "http://ws.examples/";
public static void main(String[] args) throws Exception
{
URL wsdlLocation = new URL(serviceEndpointAddress + "/" + portType + "?WSDL");
QName serviceNameQ = new QName(nameSpace, serviceName);
Service service = Service.create(wsdlLocation, serviceNameQ);
HelloWorld client = (HelloWorld)service.getPort(HelloWorld.class);
System.out.println(client.hello());
}
分享到:
相关推荐
EJB和WEBservice
EJB&Webservice
EJB_WebService 教师用书源码
北大青鸟内部教学课件ACCP4.0Y2(EJB_WebService,ASP.NET,Linux,COT)
IBM WebSphere Application Development: J2EE, EJB, WebService
ejb的简单webservice实例 适合初学
J2EE相关概念及其体系层次结构 EJB相关概念及其分类 JBuilder和Weblogic开发会话Bean JBuilder和Weblogic开发实体Bean 会话Bean和实体Bean开发J2EE应用 不同的解析器解析XML文件 JBuilder和...
NULL 博文链接:https://jingliankui123.iteye.com/blog/668972
精通soa基于服务总线的struts+ejb+webservice整合应用开发 作者:梁爱虎 书中光盘内容:org.eclipse.jdt.ui_3.1.2.jar weblogic91.server axis
用Ejb3开发的webservice。数据库连接用的是dbutils。介绍了两种webservice的调用或测试方法:客户端调用和soapui工具测试。
NULL 博文链接:https://1028826685.iteye.com/blog/1503446
北大青鸟ACCP4.0教学PPT,分卷第一部分
北大青鸟4.0教学PPT,分卷第二部分
JavaEE5学习笔记09-将EJB发布成WebService总结。
本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。
NULL 博文链接:https://wangcheng.iteye.com/blog/370091
J2EE教程: Struts+Spring+JSF+Hibermate+EJB+XML+WebService+Ajax 工35M分为3个部分.
EJB,JPA,JSF,UML,WebService以及图形界面开发代码