2016-08-17 47 views
0

我開始瘦EJB,和我試圖運行示例:http://openejb.apache.org/examples-trunk/simple-stateless-with-descriptor/README.html簡單的無狀態與描述:ClassNotFoundException的:LocalInitialContextFactory

...和我:

javax.naming.NoInitialContextException: Cannot instantiate class: simpleStatelessWithDescriptor.LocalInitialContextFactory [Root exception is java.lang.ClassNotFoundException: simpleStatelessWithDescriptor.LocalInitialContextFactory] 
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) 
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
    at javax.naming.InitialContext.init(InitialContext.java:223) 
    at javax.naming.InitialContext.<init>(InitialContext.java:197) 
    at simpleStatelessWithDescriptor.CalculatorTest.setUp(CalculatorTest.java:17) 
    at junit.framework.TestCase.runBare(TestCase.java:139) 
    at junit.framework.TestResult$1.protect(TestResult.java:122) 
    at junit.framework.TestResult.runProtected(TestResult.java:142) 
    at junit.framework.TestResult.run(TestResult.java:125) 
    at junit.framework.TestCase.run(TestCase.java:129) 
    at junit.framework.TestSuite.runTest(TestSuite.java:252) 
    at junit.framework.TestSuite.run(TestSuite.java:247) 
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
Caused by: java.lang.ClassNotFoundException: simpleStatelessWithDescriptor.LocalInitialContextFactory 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:249) 
    at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46) 
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654) 
    ... 18 more 

我的文件樹是:

enter image description here

我搜索,在全部替換文件的包的名稱以滿足文件的樹。

現在,還有什麼遺漏?爲什麼它找不到LocalInitialContextFactory?我在Windows 10 64位,Eclipse的霓虹燈,Java 6(現在不能更新)。

回答

0

simpleStatelessWithDescriptor.LocalInitialContextFactory在你的類中不存在,你不應該聲明它。

如果您遵循示例,則應使用org.apache.openejb.core.LocalInitialContextFactory。你在類路徑中沒有這個類,因爲我想你沒有添加它。添加每個需要的庫可能很長並且很複雜。 您應該使用示例中建議的pom.xml。如果

一些建議,我可以:
安裝Maven,學習的基礎上與Maven使用它,從頭開始簽出項目,並構建它: http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/simple-stateless-with-descriptor/