2012-05-11 46 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原型,我沒有任何問題讓他們說話。