2016-04-14 27 views
0

RESTful APIを作成する簡単な例を試しています。私はMaven jersey-quickstart-webapp archtypeを使ってJersey Webアプリケーションを作成しました。 別のプロジェクト私は単純なクラス:SimpleClassを作成しました。このメソッドには "hello"を返すメソッドが1つしかありません。私は、Webアプリケーション(私はデフォルトのMyResourceクラスを使用しています)で自分のメソッドでそのクラスのインスタンスを作成しようとしていて、そのメソッドを呼び出す "Hello"を取得します。 SimpleClassのプロジェクトをJARファイルにエクスポートし、そのファイルをJerseyプロジェクトのビルドパスに追加し、関連するパッケージをインポートしました。 私は、ローカルサーバー上のWebアプリケーションを実行し、MyResourceメソッドを呼び出すと、私は根本的な原因(ちょうどトップの数行)でエラーが出ます:だからJersey REST Webアプリケーションから外部クラスを参照する

java.lang.NoClassDefFoundError: Lorg/test/simple/SimpleClass; 
    java.lang.Class.getDeclaredFields0(Native Method) 
    java.lang.Class.privateGetDeclaredFields(Class.java:2583) 
    java.lang.Class.getDeclaredFields(Class.java:1916) 

、それはSimpleClassを見つけることができませんクラス。 ここで何が間違っていますか?私は本当に助けていただきありがとうございます! ありがとう、 ヤリフ。

新しい情報:Mavenを使用せずにRESTful Webサービスを作成しようとしました。単純な「Hello World」の例でプロジェクトを作成した後、別のプロジェクトから自分のクラスを追加しようとしました.jarをインポートしてビルドパスに追加し、作成するWebサービスにクラスを作成しましたサーバーにGETが行われたときのクラスのインスタンス。私のクラスは他のクラスのインスタンスをメンバとして含み、そのうちの1つはMongoDBデータベースに接続します。サービスを実行すると、次のようにHTTP 500エラーが発生します。 MultiExceptionには2つの例外があります。それらは次のとおりです:

1. java.lang.NoClassDefFoundError: com/mongodb/DBObject 
2. java.lang.IllegalStateException: Unable to perform operation: create on org.notes.server.NotesServer 

WebプロジェクトにMongoDB jarを追加することは役に立ちませんでした。私はここで大きなものを逃しているに違いない。 Webサービスに別のプロジェクト(そこに依存関係がある)で作成したコードを呼び出すにはどうすればよいですか?

私は、私はどこにもこれとなっていないのです取得することができます任意の助けを感謝します

...

+0

「ローカルサーバー上でWebアプリケーションをどのくらい実行しますか」あなたのlib jar(SimpleClassを含む)をそのサーバーのクラスパスに入れましたか?ライブラリに対してコンパイルするのに十分でない場合は、実行時にそのライブラリを利用できるようにする必要があります。 – radai

+0

私がやったのは、ローカルのTomcatサーバーを起動し、Jerseyプロジェクトを右クリックし、[実行] - > [サーバーで実行]を選択することです。 JARをサーバーのクラスパスに追加するにはどうすればよいですか? –

+0

mavenプロジェクトを使用しているのですが、ライブラリをmaven依存関係として追加するのではなく、 "IDEレイヤー"(eclipse?idea?)の依存関係として追加してください。依存関係を「適切に」(webappのpom.xmlファイルに)追加し、デプロイメントロジックがそれを拾い上げるかどうかを確認してください。 – radai

答えて

0

私は展開アセンブリに関連するすべてのJARファイルを追加することによって、これらすべての問題を解決することができました(上の右クリックPropertiesをクリックし、次にDeployment Assemblyを選択し、自分のクラスが依存するすべてのJARとそれ自身のJARを追加します)。 あなたの助けてくれてありがとう、radai!

+1

私はそれがあなたのために働いてうれしいですが、私はまだポンは、依存関係を追加する正しい場所:-) – radai

関連する問題