2017-03-19 3 views
0

2つのモジュールでJavaプロジェクトを作成したいとします。 1つはデータ分析用のモジュールで、もう1つは安らかなサーバーを作成するためのモジュールであり、リモートでデータ分析を行うことができます。 。モジュール2では他のモジュールのクラスをJerseyにインポートするには?

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

私はジャージーを使用して(私はそれの上に緑の手だ)そして、私はそれを構築するためにジャージーGlassFishのを使用し、次のような構造です。 (私はthis linkを参照しています)。

次のように私は例外を取得しかし、私は2つの

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

    } 
} 

モジュール内のリソースクラスにモジュール1のクラスをインポート:

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

のModule1内のクラスが見つからないことを示しています。

私はそれに対処する方法が不思議です。それを実現するためのフレームワークが間違っている場合、他のモジュールをJerseyにインポートする正しい方法は何ですか?

答えて

1

Module 1のリソースにアクセスするには、Module 2のリソースにModule 1を追加する必要があります。モジュールの依存性はModule 2です。コンテキストメニューでOpen Module Settingsを選択し、Dependenciesタブにモジュールを追加します。

+0

お返事ありがとうございました。最終的には、アーティファクトの設定を変更することで問題が解決されたようです。 (あなたはまだそれが依存関係の問題です。) – natsuapo

関連する問題