2017-03-19 106 views
0

我想用兩個模塊創建一個Java項目。一個是用於數據分析的模塊,另一個是用於創建寧靜服務器的模塊,以便我可以遠程執行數據分析。結構如下:如何將其他模塊中的類導入到澤西島?

├── MyProject 
| ├── Module 1: classA 
| └── Module 2: 
|   └── HelloWorld (resource class) 
|   └── MyApplication (configuration class) 

在模塊2我使用澤西(我是一個綠色的手就可以了),而且我用GlassFish的新澤西建立它。 (我指的是this link)。

我導入模塊1類的資源類模塊有兩個

import module1.classA 

public class HelloWorld { 

    classA a; 

    public HelloWorld(){ 

     classA a = new classA(); 

    } 

    @GET 
    @Consumes({MediaType.TEXT_PLAIN}) 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getClichedMessage(@QueryParam("test") String test){ 

     return a.data_analysis() 

    } 
} 

但是我得到一個例外如下:

java.lang.NoClassDefFoundError: module1.classA; 
at java.lang.Class.getDeclaredFields0(Native Method) 
at java.lang.Class.privateGetDeclaredFields(Class.java:2583) 
at java.lang.Class.getDeclaredFields(Class.java:1916) 
at org.glassfish.jersey.internal.util.ReflectionHelper$4.run(ReflectionHelper.java:309) 
at org.glassfish.jersey.internal.util.ReflectionHelper$4.run(ReflectionHelper.java:306) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.glassfish.jersey.server.model.IntrospectionModeller.checkResourceClassFields(IntrospectionModeller.java:210) 
at org.glassfish.jersey.server.model.IntrospectionModeller.doCreateResourceBuilder(IntrospectionModeller.java:137) 
at org.glassfish.jersey.server.model.IntrospectionModeller.access$000(IntrospectionModeller.java:80) 
at org.glassfish.jersey.server.model.IntrospectionModeller$1.call(IntrospectionModeller.java:111) 
at org.glassfish.jersey.server.model.IntrospectionModeller$1.call(IntrospectionModeller.java:108) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) 
at org.glassfish.jersey.server.model.IntrospectionModeller.createResourceBuilder(IntrospectionModeller.java:108) 
at org.glassfish.jersey.server.model.Resource.from(Resource.java:744) 
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:400) 
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:163) 
at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:323) 
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289) 
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286) 
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:320) 
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285) 
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:310) 
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) 
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358) 
at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1583) 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1382) 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5704) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5946) 
at com.sun.enterprise.web.WebModule.start(WebModule.java:691) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747) 
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286) 
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932) 
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139) 
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) 
at org.glassfish.jersey.server.model.IntrospectionModeller.createResourceBuilder(IntrospectionModeller.java:108) 
at org.glassfish.jersey.server.model.Resource.from(Resource.java:744) 
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:400) 
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:163) 
at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:323) 
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289) 
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286) 
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:320) 
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285) 
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:310) 
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) 
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358) 
at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1583) 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1382) 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5704) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5946) 
at com.sun.enterprise.web.WebModule.start(WebModule.java:691) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747) 
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286) 
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932) 
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139) 
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 
Startup of context /test_gf_war_exploded failed due to previous errors]] 

這表明,在模塊1類未找到。

我想知道如何處理它。如果我的框架實現它是錯誤的,那麼將其他模塊導入澤西島的正確方法是什麼?

回答

1

要訪問Module 2中的Module 1資源,您需要將Module 1添加到Module 2的模塊相關性中。在上下文菜單中選擇Open Module Settings,然後在Dependencies選項卡中添加該模塊。

+0

謝謝您的回覆,最後問題似乎通過修改工件的設置來解決。 (你說得對,這仍然是一個依賴問題。) – natsuapo