国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
j2ee web service開發(fā)(五) 把ejb發(fā)布為web服務(wù) - 一切從實用出發(fā)!...

 

ejb 作為 web 服務(wù)發(fā)布比 JSE 端點要復雜些 . 并且只有無狀態(tài)會話 Bean 才能發(fā)布成 Web 服務(wù) . 利用 ejb 的一大好處就是容器管理的事務(wù) . 但是 spring 同樣能做到這個 , 這一點不再具有很大的吸引力了 . 那么剩下的好處估計就只有用在必須用 ejb 的情況下又同時需要 web 服務(wù)這種情況了 . EJB 端點跟 JSE 端點跟一個不同點在于 : 不需要在 web.xml 文件中配置 servlet 映射 , 但是需要在 ejb-jar.xml 文件中配置 web 服務(wù)端點接口 . 另一個不同之處就是不需要一個實現(xiàn) web 服務(wù)接口的具體類 . Jboss 4.04 版本下具體實現(xiàn) .

建立一個無狀態(tài)會話 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 服務(wù)接口


package ejb;

 

import java.rmi.*;

 

public interface WebServiceTest extends Remote {

    public void hello() throws RemoteException;

}

生成 Web 服務(wù)所需的配置文件 :

<?xml version="1.0" encoding="UTF-8"?>

<!--

  wstools -cp  classes -config wstools-config.xml

-->

 

<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 服務(wù)所需要的布署文件 . wstools -cp  classes -config wstools-config.xml

把生成的布署文件放到 META-INF 文件夾而不是 JSE 端點的 web-INF 文件夾下 .

修改 ejb-jar.xml 文件加上 <service-endpoint>ejb.WebServiceTest</service-endpoint> 元素 , 注意順序 .OK 打包發(fā)布 .

客戶端調(diào)用程序

package ejb;

 

import java.net.URL;

import javax.xml.rpc.*;

import javax.xml.namespace.QName;

import javax.naming.*;

import javax.rmi.PortableRemoteObject;

import javax.naming.InitialContext;

import java.util.Hashtable;

 

public class ClientTest {

 

    private WebServiceTest getPort() throws Exception {

        ServiceFactory factory = ServiceFactory.newInstance();

        URL wsdlURL = new URL("http://hechang:8080/ejb/TestService?wsdl");

        QName qname = new QName("http://ejb", "WebServiceTest");

        Service service = factory.createService(wsdlURL, qname);

        WebServiceTest port = (WebServiceTest) service.getPort(WebServiceTest.class);

        return port;

    }

 

    private WebService ejbTest() throws Exception {

        Hashtable environment = new Hashtable();

 

        environment.put(Context.INITIAL_CONTEXT_FACTORY,

                        "org.jnp.interfaces.NamingContextFactory");

        environment.put(Context.URL_PKG_PREFIXES,

                        "org.jboss.naming:org.jnp.interfaces");

        environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");

        Context context = new InitialContext(environment);

        Object ref = context.lookup("WebServiceBean");

        WebServiceBeanHome webServiceHome = (WebServiceBeanHome) PortableRemoteObject.

                                        narrow(ref, WebServiceBeanHome.class);

        WebService webService = webServiceHome.create();

        return webService;

    }

 

    public static void main(String[] args) throws Exception {

        ClientTest clienttest = new ClientTest();

        WebServiceTest webService = clienttest.getPort();

        webService.hello();

        WebService webService2=clienttest.ejbTest();

        webService2.hello();

    }

}

打包 ejb文件下載:EJBModlue.jar

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
EJB入門文章
Ejb3.0 MDB實現(xiàn)
web service開發(fā)的完整示例
webservice 服務(wù)端例子+客戶端例子+CXF整合spring服務(wù)端測試+生成wsdl文件 +cxf客戶端代碼自動生成
Weblogic中EJB調(diào)用方法總結(jié)
利用AXIS開發(fā)Webservice(四) —— 如何拋出自定義異常
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服