でのRESTful Webサービスの私は、次のような最も簡単なRESTfulなWebサービスを持っている:ペーシュ・カショーロ/ GlassFishの
@Stateless
@Path("/list/instruments")
public class InstrumentsProvider {
@GET
@Produces({MediaType.APPLICATION_JSON})
public String getAvailableInstruments() {
[..]
}
と
@ApplicationPath("/rest")
public class RestApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
final Set<Class<?>> classes = new HashSet<>();
classes.add(InstrumentsProvider.class);
return classes;
}
}
応じpom.xml
は次のようになります。
[..]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<configuration>
<ejbVersion>3.1</ejbVersion>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
[..]
このejbをearファイル内にデプロイします。耳pom.xml
は次のようになります。
[..]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<modules>
<ejbModule>
<groupId>com.cmehistory</groupId>
<artifactId>rest-server</artifactId>
</ejbModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
[..]
結果ear
がよさそうだ、それはすべて私のライブラリやEJB jar
が含まれています。
Payara Server 4.1.2.173 #badassfish (build 24)
に展開すると、サーバーログに展開が成功したことが報告されます。
しかし、ウェブサービスはそこにはないようです。
[mydomain]:8080/rest/list/instruments/
私もまた私は、Webサービスにも存在しない場合、私は、正しいURLを見つけることがちょうどができません場合や、わからない404
をエラー与え[mydomain]:8080/ear-0.0.1-SNAPSHOPT.jar/ejb-0.0.1-SNAPSHOT.jar/rest/list/instruments/
を試みたリターン404
。
今のところ耳の中に戦争ファイルはなく、ただejbです。私はこれが問題を引き起こす可能性があると読んでいたが、私はこの事件にも当てはまるとは確信していない。