是否可以通過使用RPC寫入GWT客戶端模塊的EJB遠程接口方法? gwt應用程序位於帶Tomcat的服務器上,EJB部署在Jboss服務器中。如果它可能,我可以找到示例代碼?call ejb remote
2
A
回答
3
您提供的教程看起來很好,雖然它是針對命令行應用程序的,但對於部署在Tomcat上的應用程序,相同的概念應該可以工作。你發現了什麼問題?
在這裏,你已經一個簡單的例子:讓我們假設你的EJB部署與JBoss上這個簡單的接口:
package ejb.example;
import javax.ejb.Remote;
@Remote
public interface Example {
public String hello (String nom);
}
的代碼可以訪問該EJB遠程應類似於:
// Simple EJB Client example
package ejbclient.example
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import ejb.example.Example; // Need to import the remote interface of the bean
public class ClientEJB {
public static void main(String[] args) {
try {
// Set the properties to JBoss access
Properties environment = new Properties();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
environment.put(Context.PROVIDER_URL,"yourjboserver.com:1099");
InitialContext context = new InitialContext(environment);
// Once the proper context is set, we can obtain the dynamic proxy
Example accessEJB = (Example)
context.lookup("ExampleBean/remote");
// And finally we're done! We can access the EJB as if it was a regular object
String result = accessEJB.hello("Kate"));
} catch (NamingException e) {
e.printStackTrace();
}
}
}
事情要記住:
A.正如在本教程的說,而不是硬編碼在源代碼中的上下文屬性,你可以定義他們在jndi.properties文件中,這樣的事情:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=yourJBossServer.com:JBossJNPPort
,這個文件應該放在classpath中,因此,在代碼中你只需要撥打:
InitialContext context = new InitialContext();
該解決方案是優選的和更優雅的(它允許你改變值而不需要重新編譯客戶端)
B.注意context.lookup(「ExampleBean/remote」)語句:默認情況下,JBoss分配接口的JNDI爲類的Bean(實現)的名稱與sufix「/ remot e「或」/ local「,具體取決於接口的種類。這是爲了將EJB直接部署在jar文件中,如果將EJB放入EAR中,它會將ear文件的名稱添加爲前綴(例如,您的EJB-jar在耳朵中稱爲myapp.ear)應該查找的是:「myapp/ExampleBean/remote」)。當然,您可能已經更改了EJB中的JNDI名稱(使用了註釋或使用其部署描述符),在這種情況下,您必須使用這些名稱。另一方面,您還需要在類路徑中包含本教程中列出的JBoss客戶端庫(您可以將它們放在您的戰爭的wEB-INF/lib文件夾中)。 D.最後,你還需要在你的類路徑中使用遠程接口。
我希望它有幫助!
相關問題
- 1. EJB項目中的Netbeans和Call Enterprise Bean
- 2. capistrano部署在git ls-remote call上詢問USERNAME/PASSWORD
- 3. 如何在另一個客戶端項目中調用@Remote EJB
- 4. EJB:@remote,@local和@localbean,所有這些都是正確的?
- 5. sinatra javascript call
- 6. 如果EJB暴露了@Remote接口,但是您注入了EJB bean而不是其Remote接口,這是否會觸發遠程或本地調用?
- 7. EJB3 Remote vs Webservices,性能?
- 8. jquery post call call not works
- 9. 訪問從獨立客戶端部署在JBoss 7.1.1的WAR中的@Remote EJB
- 10. 有人可以解釋@Remote/@Local或ejb中的@Stateless之間的區別嗎?
- 11. Call類
- 12. call javascript
- 13. Call類
- 14. Call類
- 15. Java EE - 調用Remote Facade時發生InvocationTargetException?
- 16. 在xcode 5中隱藏「*** First call call stack」
- 17. @Jingleton in EJB EJB
- 18. Ejb refrences another ejb
- 19. jQuery Autocomplete Remote
- 20. git spy remote
- 21. Vim與--remote-silent
- 22. EXTJS Remote Combobox
- 23. git add remote branch
- 24. Intellij Remote Wildfly
- 25. Git tracking remote repo
- 26. Git pull remote repo
- 27. KAFKA REMOTE AWS consumer.poll
- 28. HTTPS Remote Post?
- 29. remote api GAE/J:StackOverflowError?
- 30. hg summary --remote
(幾乎)任何事情都有可能給予時間和金錢 - 你試過了什麼? –
我試圖用annotations調用ejb,並使用此鏈接http://theopentutorials.com/examples/java-ee/ejb3/how-to-create-a-simple-ejb3-project-in-eclipse- jboss-7-1/ – blink89