小さなjax-rsデモを作成しようとしています。
私はこのリソースクラスを持っています:
@Path("/cart")
public class ShoppingCartResource {
@EJB
private ShoppingCartService shoppingCartService;
@GET
public String getCart() {
ShoppingCart cart = shoppingCartService.getCart();
return "cart with "+cart.getProducts().size()+" items";
}
}
このクラスは、jboss 7.1.3 の /deployments ディレクトリに配置した ear-1.0-SNAPSHOT.ear という *.ear 内にある、rest-1.0-SNAPSHOT.war という *.war 内にパックされています。
私の web.xml は空です:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
</web-app>
私のapplication.xml(耳の中)はmavenによって自動生成されます:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
<display-name>ear</display-name>
<module>
<ejb>services-impl-1.0-SNAPSHOT.jar</ejb>
</module>
<module>
<web>
<web-uri>rest-1.0-SNAPSHOT.war</web-uri>
<context-root>/rest</context-root>
</web>
</module>
<library-directory>lib</library-directory>
</application>
ログから明らかなように、jboss を起動すると、戦争が開始されます。
09:52:19,392 INFO [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /rest
09:52:19,401 INFO [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "ear-1.0-SNAPSHOT.ear"
しかし、どのURLを試しても、このリソースにアクセスできません。私はもう試した:
- ローカルホスト:8080/rest/cart
- ローカルホスト:8080/ear-1.0-SNAPSHOT/rest/cart
リソースがバインドされている場所、または実際にバインドされていない場合、何が間違っているのですか?