`
hapinwater
  • 浏览: 70498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ejb暴露WebService

阅读更多
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服务端,然后使用WebServices来暴露这个服务。这样,任何支持WebService的客户端(无论使用何种编程语言)都可以通过SOAP请求调用EJB的方法。这种集成使得EJB的功能可以...

    EJB_WebService 教师用书源码

    EJB_WebService教师用书源码是一套完整的教学资源,旨在帮助教师和学生深入理解这两种技术,并通过实际操作来学习如何将它们整合到一起。源码中可能包含了多个示例项目,每个项目都演示了EJB和Web服务在实际应用场景...

    EJB3.0容器模型的WEB服务-WebService

    1. **JAX-WS(Java API for XML Web Services)**:EJB 3.0支持JAX-WS,允许直接在Bean上使用`@WebService`注解,将Bean暴露为Web服务。服务端点接口(SEI)可以通过注解自动生成。 2. **SOAP与RESTful风格**:EJB ...

    axis2+EJB整合开发 源代码

    【描述】"一个webservice整合EJB的小例子"意味着这个压缩包包含了一个实际的、可运行的项目,展示了如何在 Axis2 上构建Web服务,并与EJB系统交互。通过这个小例子,我们可以学习到如何创建、部署和调用EJB服务,并...

    J2EE教程: Struts+Spring+JSF+Hibermate+EJB+XML+WebService+Ajax(part2)

    在提供的压缩包文件中,我们看到Spring4.rar、Ajax2.rar、WebService.rar、Ajax1.rar和xml.rar,这些分别对应了Spring框架、Ajax技术和Web Service相关的资源。学习和掌握这些内容,将使你具备构建高效、现代化J2EE...

    ejb3 第12讲 --开发EJB容器模型的WEB服务

    EJB的注解如`@WebService`、`@WebServiceClient`、`@Path`等用于标注Web服务相关的方法和类。 3. **部署**:将EJB和Web服务打包到一个Java EE应用中,通常是一个WAR或EAR文件。EJB容器如Glassfish、WildFly或TomEE...

    Manning EJB3 in Action

    3. **WebService支持**:EJB3还支持与WebService的集成,可以通过`@WebService`注解将EJB3组件暴露为Web服务,实现跨平台的远程调用。此外,JAX-WS(Java API for XML Web Services)为创建、部署和消费Web服务提供...

    WebService Axis初学者

    Axis不仅限于简单的数据交换,还可以与其他技术结合,如JMS(Java消息服务)或EJB(企业级JavaBean),构建更复杂的分布式系统。 总结:了解和掌握WebService Axis,对于Java开发者来说至关重要,因为它能帮助你在...

    ejb3.0实例教程及源码

    `@WebService`注解还可以将会话bean直接暴露为Web服务。 4. **消息驱动bean**:EJB3.0通过`@MessageDriven`注解实现了对JMS(Java Message Service)的支持,使得bean可以作为消息消费者,处理异步通信。 5. **...

    简易EJB3.0教程

    EJB3.0允许直接将EJB作为Web服务暴露,方便与其他系统交互。`@WebService`和`@WebMethod`注解可用于将Bean的方法转换为Web服务接口。此外,JAX-WS(Java API for XML Web Services)提供了完整的工具链,简化了服务...

    基于XML的SOAP_WebService分布式系统架构的研究和实现

    WebService是一个应用程序,它向外部暴露一个可以通过Web调用的API。WebService依赖以下几种技术: - **WSDL(Web Services Description Language)**:使用XML来描述WebService的所有方法、参数和服务的位置。 - **...

    EJB3.0学习总结(二)--EJB3.0容器模型的WEB服务

    在EJB 3.0中,Web服务被集成到了EJB组件中,使得EJB可以直接暴露为Web服务。通过使用JAX-WS(Java API for XML Web Services),开发者可以方便地创建符合SOAP(Simple Object Access Protocol)标准的Web服务。 ##...

    EJB3.0实例教程

    - `@WebService`:将Bean暴露为Web服务。 ### 容器管理的事务(CMT) EJB3.0中的事务管理由容器自动处理,开发者无需编写复杂的事务代码。例如,通过设置Bean的方法上`@TransactionAttribute`注解,可以指定事务...

    EJB3.0教程

    - `@WebService` 将EJB暴露为Web服务。 ### 4. JPA(Java Persistence API) JPA是EJB 3.0的一部分,用于处理对象-关系映射(ORM)。它提供了API和元数据来定义实体类、映射关系和查询语言(JPQL)。 ### 5. 容器...

    EJB3_study

    - `@WebService`,将Bean暴露为Web服务。 - `@PersistenceContext`,注入EntityManager来操作数据。 - `@TransactionAttribute`,定义事务属性。 ### 3. 持久化框架JPA(Java Persistence API) EJB3引入了JPA,它...

    EJB3.0 学习笔记

    EJB3.0可以通过`@WebService`注解轻松地将Bean暴露为Web服务,简化了服务的创建和部署。 9. **异步方法调用** EJB3.0引入了异步方法调用,通过`@Asynchronous`注解,可以在后台线程执行耗时操作,提高系统响应...

Global site tag (gtag.js) - Google Analytics