JBoss Community

Cannot make my maven test client to speak with my EJB, missing jar?

created by eildosa in EJB3 - View the full discussion

Hi, here is my problem, I made an EJB with maven and 2 test clients,

 

 

* a test client without maven, only added jnp-client and the EJB to it's class path, work like a charm

* a test client using MAVEN, added the EJB through the POM and jnp-client, does not work

 

 

this is my EJB :

 

 

[img]http://img11.hostingpics.net/pics/480421EJB1.png[/img]

 

 

it's POM :

 

 

[code]

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

 

 

  <groupId>com.thongvan.mp</groupId>

  <artifactId>MyFirstMavenEjb</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>ejb</packaging>

  <name>MyFirstMavenEjb</name>

  <url>http://maven.apache.org</url>

 

 

  <dependencies>

    <dependency>

      <groupId>javax</groupId>

      <artifactId>javaee-api</artifactId>

      <version>6.0</version>

      <scope>provided</scope>

    </dependency>

  </dependencies>

 

 

   <!-- setting default EJB2 to EJB3 -->

  <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>2.0.2</version>

        <configuration>

          <source>1.5</source>

          <target>1.5</target>

        </configuration>

      </plugin>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-ejb-plugin</artifactId>

        <version>2.1</version>

        <configuration>

          <ejbVersion>3.0</ejbVersion>

        </configuration>

      </plugin>

 

 

    </plugins>

  </build>

</project>

[/code]

 

 

 

 

this is my first test client, the one without maven wich has no problem whatsoever to speak with the EJB

 

 

[img]http://img11.hostingpics.net/pics/974963EJB0.png[/img]

 

 

this is my second test client, using maven, it cannot speak with the EJB, all I'm getting is :

 

 

[code]

Context lookup finished

Exception in thread "main" java.lang.ClassCastException: javax.naming.Reference cannot be cast to com.thongvan.mp.MyFirstMavenEjb.TestMavenEjb

          at com.thongvan.mp.TestClientMavenEjb.App.main(App.java:27)

 

 

[/code]

 

 

[img]http://img11.hostingpics.net/pics/651692EJB2.png[/img]

 

 

It's POM :

 

 

[code]

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

 

 

  <groupId>com.thongvan.mp</groupId>

  <artifactId>TestClientMavenEjb</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

 

 

  <name>TestClientMavenEjb</name>

  <url>http://maven.apache.org</url>

 

 

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  </properties>

 

  <!-- pour la dependance jnp-client, besoin de la version 5.0.3.GA -->

  <repositories>

    <repository>

      <id>Jboss</id>

      <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>

    </repository>

  </repositories>

 

 

  <dependencies>

          <dependency>

                      <groupId>org.jboss.naming</groupId>

                      <artifactId>jnp-client</artifactId>

                      <version>5.0.3.GA</version>

          </dependency>

          <dependency>

                      <groupId>com.thongvan.mp</groupId>

                      <artifactId>MyFirstMavenEjb</artifactId>

                       <version>0.0.1-SNAPSHOT</version>

          </dependency>

  </dependencies>

</project>

[/code]

 

 

 

 

Both clients have the same main :

 

 

[code]

    public static void main( String args[] ) throws NamingException

    {

              Hashtable env = new Hashtable();

        env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");

        env.put(Context.PROVIDER_URL, "localhost");

        env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces" );

        Context ctx = new InitialContext(env);

                    System.out.println("Context lookup finished");

 

                    TestMavenEjb proxy = (TestMavenEjb)(ctx.lookup("TestMavenEjbBean/remote-com.thongvan.mp.MyFirstMavenEjb.TestMavenEjb"));

                    System.out.println(proxy.getClass());

 

                    System.out.println("do something!");

 

                    proxy.doSomething();

    }

[/code]

 

 

So, anybody has even the slightest idea about why the maven test client is not working?

 

 

Jboss 5.1.0.GA

Eclipse indigo

Maven 3.0.4

 

Also I did some poking around by printing a toString on both context lookup here is what I got :

 

[b]Maven project (not working)[/b]

Reference Class Name: Proxy for: com.thongvan.mp.MyFirstMavenEjb.TestMavenEjb

Type: ProxyFactoryKey

Content: ProxyFactory/MyFirstMavenEjb/TestMavenEjbBean/TestMavenEjbBean/remote

Type: EJB Container Name

Content: jboss.j2ee:jar=MyFirstMavenEjb.jar,name=TestMavenEjbBean,service=EJB3

Type: Proxy Factory is Local

Content: false

Type: Remote Business Interface

Content: com.thongvan.mp.MyFirstMavenEjb.TestMavenEjb

Type: Remoting Host URL

Content: socket://localhost:3873/

 

 

 

 

[b]regular project (working)[/b]

Proxy to jboss.j2ee:jar=MyFirstMavenEjb.jar,

name=TestMavenEjbBean,

service=EJB3 implementing [interface com.thongvan.mp.MyFirstMavenEjb.TestMavenEjb]

Reply to this message by going to Community

Start a new discussion in EJB3 at Community