91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

J2EE web service開發中如何把ejb發布為web服務

發布時間:2022-01-11 16:31:49 來源:億速云 閱讀:152 作者:柒染 欄目:編程語言

小編今天帶大家了解J2EE web service開發中如何把ejb發布為web服務,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“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 打包發布 .

客戶端調用程序

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();       }   }

感謝大家的閱讀,以上就是“J2EE web service開發中如何把ejb發布為web服務”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

砀山县| 石棉县| 南安市| 桂林市| 建宁县| 乌苏市| 南溪县| 建德市| 都兰县| 宁陵县| 卓资县| 昆明市| 舒兰市| 广水市| 宝坻区| 高青县| 昭通市| 华阴市| 革吉县| 永清县| 康定县| 荔波县| 永兴县| 胶州市| 阳信县| 招远市| 公主岭市| 临潭县| 安西县| 武定县| 金昌市| 五原县| 通海县| 松阳县| 个旧市| 庆云县| 昌吉市| 潼南县| 娄烦县| 南康市| 古浪县|