私とグループは、継続する時間がなかった人たちから開発プロジェクトを引き継いだところです。このプロジェクトは、jersey と jetty を使用する RESTful サーバーと、Java クライアントで構成されています。残念ながら、それらは利用できず、サーバーを展開しようとして立ち往生しています.
彼らは開発にEclipseを使用しており、サーバープロジェクトではmavenを使用して依存関係を処理しています。彼らは .jar ファイルのデプロイに maven を使用しませんでしたが、Eclipse を介してのみ抽出しました。
jar ファイルを作成するために maven-install を使用し、Eclipse を介してエクスポートするだけです。どちらの場合も、なんとか起動して実行できますが、クライアントを起動すると、サーバーで次のエラーが発生します。
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class java.lang.String, and Java type class java.lang.String, and MIME media type text/plain was not found
通常のブラウザーを介して Web サービスにアクセスしようとすると、同じことが起こります。
ただし、「Run As」->「Java Application」のようにEclipseを介してプロジェクトを実行すると機能します。
A message body writer for Java class ... and MIME media type text/html was not foundを含む多くの投稿を既に読んでおり、 jersey-json 依存関係を追加しましたが、同じエラーが発生します。
リソースは次のように定義されます。
@Path("/{token}/users")
public class Users {
@GET
@Path("/show/{username}")
@Produces("text/plain")
public String getUser(@PathParam("username") String username,
@PathParam("token") String token) {
(...)
}
実際の HTTP リクエスト/レスポンスはまだ調査していませんが、それらからの情報が興味深いと思われる場合は調査するかもしれません。
助けてくれてありがとう!どんな入力でも大歓迎です!
編集: maven-assembly を使用して展開し、POM ファイルにはこれ (およびその他) が含まれています。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>no.abakus.backup.abacash.webservice.AbaCashCoreLauncher</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>