我的應用程序打包爲ejb模塊內部的.ear文件。有無狀態會話bean實現遠程接口。事情是這樣的:使用客戶端ejb jar查找遠程ejb
package my.package.ext.impl;
[...]
@Stateless(name = "MyPropertiesHandler", mappedName = "ejb/MyPropertiesHandler")
public class PropertiesHandler implements PropertiesHandlerRemote {
[...]
}
這:
package my.package.ext;
[...]
@Remote
public interface PropertiesHandlerRemote {
[...]
}
還有生成的客戶EJB JAR,也有企業的遠程接口和一些其他的東西里面。
此客戶端ejb jar作爲Maven依賴項連接到其他應用程序。
我嘗試查找PropertiesHandler服務從該應用程序:
PropertiesHandlerRemote propertiesHandler = InitialContext.doLookup(
"ejb/MyPropertiesHandler#my.package.ext.PropertiesHandlerRemote");
在這一刻我得到以下錯誤:
java.lang.NoClassDefFoundError: my/package/ext/PropertiesHandlerRemote
at [...]
at sun.reflect.GeneratedMethodAccessor633.invoke(Unknown Source)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: my.package.ext.PropertiesHandlerRemote
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
Truncated. see log file for complete stacktrace
我Weblogic上10.x的運行它,你可以在上面看到。
任何想法出錯了?
所以我相信它編譯,你在maven中爲這個依賴設置了什麼範圍? WL在運行時找不到該類。 – Kris 2012-02-08 12:05:31
@Kris謝謝你的回覆。沒有指定範圍,所以我想它是默認編譯的。無論如何,它被包裝成一個.ear和客戶端ejb的jar包。 – kardanov 2012-02-08 12:11:52