2012-05-11 104 views
2

这里是我的问题,我做了Maven和2测试客户端的EJB,EJB 3.0测试客户端工作不行家,但不与

  • 测试客户端没有行家,只是增加JNP客户端和EJB来它的类路径,就像一个魅力
  • 使用Maven测试客户端,加入通过POM和JNP客户端的EJB的工作,不工作

这是我的EJB:

the EJB

它的POM:

<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> 

这是我的第一个测试客户端,无需行家至极的人有没有任何问题与EJB

regular test client

这是我第二次测试说话客户端,使用maven,它不能与EJB交谈,我得到的全部是:

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) 

the maven test client

这是POM:

<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> 

两个客户端具有相同的主:

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(); 
} 

所以,有人更是把为什么Maven的测试客户端不工作丝毫的想法?

的Jboss 5.1.0.GA Eclipse的靛蓝 的Maven 3.0.4

+1

您如何运行测试客户端? – Behe

+0

在TestProg.java上包含main和select作为java应用程序运行的权利。 – Eildosa

+0

在转换之前为ctx.lookup()结果创建一个临时变量。对象的toString()会打印什么?很可能,您在客户端类路径中缺少对象工厂类。 –

回答

0

的awnser是相当简单的,但不可能被发现了什么我张贴:X

我使用的是JEE6原型和Jboss 5.1.0.GA与jee6不兼容。 如果我使用jee5原型,我没有任何问题让他们说话。