[Installation, Configuration & DEPLOYMENT] - EJB3 deployment:Newbie question
by JGF1
Hi folks.
I am in process of reading Beginning Java EE 5 Platform by Apress and can't seem to get my application to run. I was wondering if anyone can shed some light for me. It appears to be some sort of binding issue.
Directory Structure is:
SimpleSessionApp
beans
client
Code was compiled and run from SimpleSessionApp folder.
Here's the same code
| package beans;
|
| import javax.ejb.Remote;
|
| @Remote
| public interface SimpleSession
| {
| public String getEchoString(String clientString);
| }
|
| package beans;
|
| import javax.ejb.Stateless;
|
| @Stateless
| public class SimpleSessionBean implements SimpleSession {
| public String getEchoString(String clientString) {
| return clientString + " - from session bean";
| }
| }
|
| package client;
|
| import beans.SimpleSession;
| import javax.naming.InitialContext;
|
| public class SimpleSessionClient {
| public static void main(String[] args) throws Exception
| {
| InitialContext ctx = new InitialContext();
| SimpleSession simpleSession
| = (SimpleSession) ctx.lookup(SimpleSession.class.getName());
| for (int i = 0; i < args.length; i++) {
| String returnedString = simpleSession.getEchoString(args);
| System.out.println("sent string: " + args +
| ", received string: " + returnedString);
| }
| }
| }
|
I've had to set up complicated classpath:
c:\apps\jboss-4.2.2.ga\lib\concurrent.jar;
c:\apps\jboss-4.2.2.ga\lib\jboss-common-jar;
c:\apps\jboss-4.2.2.ga\client\jboss-j2ee.jar;
c:\apps\jboss-4.2.2.ga\lib\commons-httpclient.jar;
c:\apps\jboss-4.2.2.ga\server\all\lib\jboss.jar;
c:\apps\jboss-4.2.2.ga\server\all\lib\jboss-remoting.jar;
c:\apps\jboss-4.2.2.ga\server\all\lib\jboss-transaction.jar;
c:\apps\jboss-4.2.2.ga\server\all\lib\jnpserver.jar;
c:\apps\jboss-4.2.2.ga\server\all\deploy\ejb3.deployer\jboss-ejb3.jar;
c:\apps\jboss-4.2.2.ga\server\all\lib\jboss-ejb3x.jar;
c:\apps\jboss-4.2.2.ga\server\all\deploy\jboss-aop-jdk50.deployer\jboss-aop-jdk50.jar;
c:\apps\jboss-4.2.2.ga\server\all\deploy\jboss-aop-jdk50.deployer\jboss-aspect-library-jdk50.jar;
c:\apps\jboss-4.2.2.ga\client\jboss-common-client.jar;
The last one was omitted from book, and had been giving a ClassNotFound exception for Logger. Found this on the net in another forum.
But now, when I try and invoke program as follows:
java -Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory -Djava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces -Djava.naming.provider.url=localhost client.SimpleSessionClient Now is the time for all good men
I get the following error:
Exception in thread "main" javax.naming.NameNotFoundException: beans.SimpleSession not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at client.SimpleSessionClient.main(SimpleSessionClient.java:10)
It's saying SimpleSession in package beans is not found.
Is this some sort of JNDI lookup problem?
Package was created as follows:
jar cf SimpleSessionApp.ejb3 beans\*.java
Copied SimpleSessionApp.ejb3 to server\all\deploy folder
Any ideas?
Cheers
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134368#4134368
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134368
18 years, 1 month
[Installation, Configuration & DEPLOYMENT] - Re: [Help] Resources In Jars in Deployment EAR
by Mazinger
No, the server.log's last entry occurs before the error. I'm having some issues with that as well, but that information's showing up in DEBUG, not ERROR, so I'm not concerned, I'd like to get this issue out of the way first...
This is the common-config.xml located at the root of one of the JARs bundled in the EAR.
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
| <configuration>
| <override>
| <system/>
| <propertiesDirectory directoryPath="/usr/local/autodeploy/properties/wl8/"/>
| <properties fileName="audittrail.properties"/>
| <properties fileName="event.properties"/>
| <properties fileName="request.properties"/>
| <properties fileName="vault.properties"/>
| <properties fileName="comm-methods.properties"/>
| <properties fileName="tolec.properties"/>
| <properties fileName="xml.properties"/>
| <properties fileName="eCoreDatabase.properties"/>
| <properties fileName="EOSystem.properties"/>
| <properties fileName="data-access.properties"/>
| <properties fileName="DocuGuard.properties"/>
| <properties fileName="proxyToken.properties"/>
| <properties fileName="encrypt-alg-map.properties"/>
| <properties fileName="encryption.properties"/>
| </override>
| </configuration>
Basically it lists the files to look for in the classpath... The directory is considered an override, which reads in any of those files it finds in that directory on the filesystem, so we do not have to repackage and deploy the EAR each time we make a property change.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134354#4134354
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134354
18 years, 1 month