You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by ivanrc <ir...@indra.es> on 2007/10/23 11:33:19 UTC

NameNotFoundException connection Remote client to EJB CMP

Hi,

I want to connect  EJB CMP deployed in geronimo-tomcat6-jee5-2.0.1 using
remote interface. EJB named EstadoAlarmaBean is well deployed (it appear in  	
Installed EJB JARs), and JNDI name is "ejb/EstadoAlarma".

My remote client source code is this:

public static void main(String[] args) {
		Context ctx;
		try {
			ctx = new InitialContext();
			Object ref = ctx.lookup("ejb/EstadoAlarma");
			EstadoAlarma h =
(EstadoAlarma)PortableRemoteObject.narrow(ref,EstadoAlarma.class);
			// String result = h.sayHello();
			System.out.println("ok");
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

when I run the client I obtain this exception:

javax.naming.NameNotFoundException: /ejb/EstadoAlarma does not exist in the
system.  Check that the app was successfully deployed.
	at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:239)
	at javax.naming.InitialContext.lookup(InitialContext.java:351)
	at ClientMain.main(ClientMain.java:23)


I think /ejb/EstadoAlarma must exist, because I defined into openejb-jar,
inside <entity> tag this: <jndi-name>ejb/EstadoAlarma</jndi-name>


Can anyone help me?.thanks

attachments:

openejb-jar:

<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar
		xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
		xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1"
		xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
		xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"
		xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
	
	<sys:environment>
		<sys:moduleId>
			<sys:groupId>default</sys:groupId>
			<sys:artifactId>EstadoAlarmaBean</sys:artifactId>
			<sys:version>1.21</sys:version>
			<sys:type>jar</sys:type>
		</sys:moduleId>
	</sys:environment>
   
	<enterprise-beans>
	<entity>
		<ejb-name>EstadoAlarmaBean</ejb-name>
		<jndi-name>ejb/EstadoAlarma</jndi-name>
        <table-name>CRC_GSE_ALAR_ESTADO_ALARMA</table-name>
		<cmp-field-mapping>
			<cmp-field-name>estadoAlarma</cmp-field-name>
			<table-column>ESTADO_ALARMA_TP</table-column>
		</cmp-field-mapping>
		<cmp-field-mapping>
			<cmp-field-name>estadoAlarmaGIA</cmp-field-name>
			<table-column>ESTADO_ALARMA_GIA_NU</table-column>
		</cmp-field-mapping>
		<resource-ref>
            <ref-name>jdbc/mysqlPool</ref-name>
            <resource-link>mysqlPool</resource-link>
     	</resource-ref>
	</entity>
  </enterprise-beans>
</openejb-jar>

ejb-jar:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">
   <enterprise-beans>
      <entity>
            <display-name></display-name>
            <ejb-name>EstadoAlarmaBean</ejb-name>
           
<home>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaHome</home>
           
<remote>com.indra.gse.server.ejb.estadoalarma.EstadoAlarma</remote>
           
<local-home>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaLocalHome</local-home>
           
<local>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaLocal</local>
           
<ejb-class>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaBean</ejb-class>
            <persistence-type>Container</persistence-type>
            <prim-key-class>java.lang.String</prim-key-class>
            <reentrant>False</reentrant>
            <cmp-version>2.x</cmp-version>
            <abstract-schema-name>EstadoAlarmaBean</abstract-schema-name>
            <cmp-field>
                <field-name>estadoAlarma</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>estadoAlarmaGIA</field-name>
            </cmp-field>
            <primkey-field>estadoAlarma</primkey-field>
            <query>
                <query-method>
                    <method-name>findAll</method-name>
                    <method-params/>
                </query-method>
                <ejb-ql>SELECT OBJECT(o) FROM EstadoAlarmaBean as o ORDERBY
o.estadoAlarma</ejb-ql>
            </query>
        </entity>
   </enterprise-beans>
</ejb-jar>


-- 
View this message in context: http://www.nabble.com/NameNotFoundException-connection-Remote-client-to-EJB-CMP-tf4676269s134.html#a13360517
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Re: NameNotFoundException connection Remote client to EJB CMP

Posted by Daniel Koebbing <Da...@westfleisch.de>.
ivanrc wrote:

> 
> Hi,
> 
> I want to connect  EJB CMP deployed in geronimo-tomcat6-jee5-2.0.1 using
> remote interface. EJB named EstadoAlarmaBean is well deployed (it appear
> in Installed EJB JARs), and JNDI name is "ejb/EstadoAlarma".
> 
> My remote client source code is this:
> 
> public static void main(String[] args) {
> Context ctx;
> try {
> ctx = new InitialContext();
> Object ref = ctx.lookup("ejb/EstadoAlarma");
> EstadoAlarma h =
> (EstadoAlarma)PortableRemoteObject.narrow(ref,EstadoAlarma.class);
> // String result = h.sayHello();
> System.out.println("ok");
> } catch (NamingException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> }
> 
> when I run the client I obtain this exception:
> 
> javax.naming.NameNotFoundException: /ejb/EstadoAlarma does not exist in
> the
> system.  Check that the app was successfully deployed.
> at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:239)
> at javax.naming.InitialContext.lookup(InitialContext.java:351)
> at ClientMain.main(ClientMain.java:23)
> 
> 
> I think /ejb/EstadoAlarma must exist, because I defined into openejb-jar,
> inside <entity> tag this: <jndi-name>ejb/EstadoAlarma</jndi-name>
> 
> 
> Can anyone help me?.thanks
> 
> attachments:
> 
> openejb-jar:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <openejb-jar
> xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
> xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1"
> xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
> xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"
> xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
> 
> <sys:environment>
> <sys:moduleId>
> <sys:groupId>default</sys:groupId>
> <sys:artifactId>EstadoAlarmaBean</sys:artifactId>
> <sys:version>1.21</sys:version>
> <sys:type>jar</sys:type>
> </sys:moduleId>
> </sys:environment>
>    
> <enterprise-beans>
> <entity>
> <ejb-name>EstadoAlarmaBean</ejb-name>
> <jndi-name>ejb/EstadoAlarma</jndi-name>
>         <table-name>CRC_GSE_ALAR_ESTADO_ALARMA</table-name>
> <cmp-field-mapping>
> <cmp-field-name>estadoAlarma</cmp-field-name>
> <table-column>ESTADO_ALARMA_TP</table-column>
> </cmp-field-mapping>
> <cmp-field-mapping>
> <cmp-field-name>estadoAlarmaGIA</cmp-field-name>
> <table-column>ESTADO_ALARMA_GIA_NU</table-column>
> </cmp-field-mapping>
> <resource-ref>
>             <ref-name>jdbc/mysqlPool</ref-name>
>             <resource-link>mysqlPool</resource-link>
>      </resource-ref>
> </entity>
>   </enterprise-beans>
> </openejb-jar>
> 
> ejb-jar:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">
>    <enterprise-beans>
>       <entity>
>             <display-name></display-name>
>             <ejb-name>EstadoAlarmaBean</ejb-name>
>            
> <home>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaHome</home>
>            
> <remote>com.indra.gse.server.ejb.estadoalarma.EstadoAlarma</remote>
>            
>
<local-home>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaLocalHome</local-home>
>            
> <local>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaLocal</local>
>            
>
<ejb-class>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaBean</ejb-class>
>             <persistence-type>Container</persistence-type>
>             <prim-key-class>java.lang.String</prim-key-class>
>             <reentrant>False</reentrant>
>             <cmp-version>2.x</cmp-version>
>             <abstract-schema-name>EstadoAlarmaBean</abstract-schema-name>
>             <cmp-field>
>                 <field-name>estadoAlarma</field-name>
>             </cmp-field>
>             <cmp-field>
>                 <field-name>estadoAlarmaGIA</field-name>
>             </cmp-field>
>             <primkey-field>estadoAlarma</primkey-field>
>             <query>
>                 <query-method>
>                     <method-name>findAll</method-name>
>                     <method-params/>
>                 </query-method>
>                 <ejb-ql>SELECT OBJECT(o) FROM EstadoAlarmaBean as o
>                 ORDERBY
> o.estadoAlarma</ejb-ql>
>             </query>
>         </entity>
>    </enterprise-beans>
> </ejb-jar>
> 
>
 
Hello,

as far as I know You must put the name of the JAR before the given JNDI
name: xxx.jar/EstadoAlarmaBean

There was an in depth explanation of the naming mechanism in this group some
weeks ago, perhaps You can still find it...

And just have a look at:
http://cwiki.apache.org/GMOxDEV/client-jndi-names.html


Daniel