2011-08-19 56 views
0

作爲Consuming an EJB的後續問題。我在JBOSS AS 6.0上創建了一個ejb,並使用以下代碼在java客戶端中使用它。JDK1.4中的Ejb消耗

private ServiceLocator(String host, String principal, String creadentials) throws NamingException { 
     Properties env = new Properties(); 
     env.put(Context.INITIAL_CONTEXT_FACTORY, 
       "org.jnp.interfaces.NamingContextFactory"); 
     env.put(Context.URL_PKG_PREFIXES, 
       "org.jboss.naming:org.jnp.interfaces"); 
     env.put(Context.PROVIDER_URL, "jnp://" + host); 
     System.out.println("jnp://" + host); 
     env.put(Context.SECURITY_PRINCIPAL, principal); 
     env.put(Context.SECURITY_CREDENTIALS, creadentials); 
     env.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
       "org.jboss.security.jndi.JndiLoginInitialContextFactory"); 
     InitialContext ct = new InitialContext(env); 
     cachedStructSpeechRemote = (StructSpeechRemote) ct.lookup("eCWServicesEAR/StructSpeechService/remote-com.ecw.ejb.StructSpeechRemote"); 
    } 

消費者使用JBOSS-all-client.jar存在於JBoss AS6.0的客戶端文件夾中。我無法使用與JDK1.4相同的代碼,因爲該jar不兼容JDK 1.4。我也嘗試從舊版本的JBoss AS中獲取jar文件,但是它不適用於服務器的更新版本:( 有沒有辦法編寫一個獨立於JDK版本的EJB消費者(也可能是供應商是獨立的!),並且可以在1.4到6之間的所有JDK中工作?

回答

0

在您的情況下,我會將JBoss上的EJB作爲Web服務公開以便能夠從任何jvm調用它,否則您可以嘗試查找更多的信息在這裏:https://issues.jboss.org/browse/EJBTHREE-1029?focusedCommentId=12371962

+0

這就是我現在正在做的事情,並且使用一個註釋非常容易,但是我想使用EJB,因爲這將節省大量的XML編組和解組時間。 – Sap