Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "RAP/FAQ"
< RAP
(added section "How do I remote call EJB's from an Jboss 4.x AS") |
m (minor spelling changes on "How do I make remote calls to EJB's deployed on Jboss 4.x AS") |
||
Line 30: | Line 30: | ||
* A tighter integration can be achieved by developing a custom widget as explained here (integrating GMap): [http://help.eclipse.org/help33/topic/org.eclipse.rap.help/help/html/advanced/custom-widget.html custom widget tutorial] | * A tighter integration can be achieved by developing a custom widget as explained here (integrating GMap): [http://help.eclipse.org/help33/topic/org.eclipse.rap.help/help/html/advanced/custom-widget.html custom widget tutorial] | ||
− | == How do I remote | + | == How do I make remote calls to EJB's deployed on Jboss 4.x AS == |
This is not a solution for calling local interface EJB's (I wasn't able to do it :( ) | This is not a solution for calling local interface EJB's (I wasn't able to do it :( ) | ||
Nevertheless is more useful to make remote calls as the RAP application and the JBoss AS could be on separate machines (or will be sometime in the application life-cycle) | Nevertheless is more useful to make remote calls as the RAP application and the JBoss AS could be on separate machines (or will be sometime in the application life-cycle) | ||
− | * prepare a jar with EJB's interfaces which | + | * prepare a jar with EJB's interfaces which you are about to call from RAP (I think here you may use it wrapped as a bundle if you want to separate it from your application bundle) |
− | * put the jar in the application runtime classpath or add it as a dependency plugin if | + | * put the jar in the application runtime classpath or add it as a dependency plugin if you use it as a bundle |
* add the following jar's from the jboss installation folder in the application runtime classpath : jboss.jar, jboss-remoting.jar, jboss-serialization.jar, jbosssx.jar, jboss-transaction.jar, jnpserver.jar | * add the following jar's from the jboss installation folder in the application runtime classpath : jboss.jar, jboss-remoting.jar, jboss-serialization.jar, jbosssx.jar, jboss-transaction.jar, jnpserver.jar | ||
Line 44: | Line 44: | ||
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); | props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); | ||
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); | props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); | ||
− | props.put(Context.PROVIDER_URL, "jnp://localhost:1099"); //here | + | props.put(Context.PROVIDER_URL, "jnp://localhost:1099"); //here you put your JBoss AS server's address |
Context ctx = null; | Context ctx = null; | ||
try { | try { |
Revision as of 12:04, 12 December 2007
| RAP wiki home | RAP project home |
This section is intended to host differents Faqs about RAP and RWT. One source could be the newsgroup about RAP itself...
Contents
How to hide the window in rap
[| Lien]
Exported .war does not work
My application is working at development time, but when I export it the web application does not work. Check the following:
- check your build.properties
- are you exporting the plugin.xml
- are all libraries you are using in the plugin.jars
- TIP: As pde build sometimes swallows error messages try exporting your feature with "Deployable feature" export, this may turn up error messages
- enable the osgi console by adding this init-param to the web.xml:
<init-param> <param-name>commandline</param-name> <param-value>-console</param-value> </init-param>
- you may want to add a port after -console in unix environments, you can then telnet to the osgi console
- type ss in the console and see if all bundles are started. If not try starting them with "start <bundle-id>"
- the stack traces may hint to what is missing
- start with a working example: rapdemo.war and integrate your plugins
How do I add an applet / flash / an existing Javascript libary
- A very simplistic approach is to create a html page (or a servlet) containing your applet / flash / JS. You can simply use the browser widget to load that page within your application.
- A tighter integration can be achieved by developing a custom widget as explained here (integrating GMap): custom widget tutorial
How do I make remote calls to EJB's deployed on Jboss 4.x AS
This is not a solution for calling local interface EJB's (I wasn't able to do it :( )
Nevertheless is more useful to make remote calls as the RAP application and the JBoss AS could be on separate machines (or will be sometime in the application life-cycle)
- prepare a jar with EJB's interfaces which you are about to call from RAP (I think here you may use it wrapped as a bundle if you want to separate it from your application bundle)
- put the jar in the application runtime classpath or add it as a dependency plugin if you use it as a bundle
- add the following jar's from the jboss installation folder in the application runtime classpath : jboss.jar, jboss-remoting.jar, jboss-serialization.jar, jbosssx.jar, jboss-transaction.jar, jnpserver.jar
Here's an example code for calling the EJB's remote interface :
Hashtable<String, String> props = new Hashtable<String, String>(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); props.put(Context.PROVIDER_URL, "jnp://localhost:1099"); //here you put your JBoss AS server's address Context ctx = null; try { ctx = new InitialContext(props); } catch (NamingException e) { throw new RuntimeException("fail to get initial context", e); } Object obj = null; try { obj = ctx.lookup("Test"); //The jndi ejbs name is Test } catch (NamingException e) { throw new RuntimeException("could not obtain test home interface", e); } TestHome home = (TestHome) PortableRemoteObject.narrow(obj, TestHome.class); try { testService = home.create(); } catch (CreateException e) { throw new RuntimeException("could not create test remote interface", e); } catch (RemoteException e) { throw new RuntimeException("remote exception when creating test remote interface", e); } try { testService.callSomeBusinessMethod(...); } catch (RemoteException e) { throw new RuntimeException("remote exception when calling business method", e); }