4

jersey と JAX-RS を使用して最も単純な REST サービスをデプロイしようとしていますが、このエラーが発生します。

HTTP エラー: 404 NOT_FOUND RequestURI=/hosting/demo/example

私はすべてを正しく行ったと思いますが、以下は私が使用しているコードです。

POM.XML(ジャージ関連部分のみ貼り付け)

<dependency>
    <!-- the implementation of JAX-RS -->
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.0.1</version>
</dependency>
<dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.0.1</version>
</dependency>
<dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.0.1</version>
        <scope>compile</scope>
</dependency>

Web.XML

<servlet>
        <servlet-name>jersey</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>mop.core.service.restservices</param-value>
        </init-param>
</servlet>
<servlet-mapping>
        <servlet-name>jersey</servlet-name>
        <url-pattern>/demo</url-pattern>
</servlet-mapping>

@GET を持つクラス

package mop.core.service.restservices;

import javax.swing.JOptionPane;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/example")
public class PricePointRestService {
    @GET
    @Produces("text/plain")
    public String getPricePoint(){
        JOptionPane.showMessageDialog(null, "GET CALLED");
        return "hello";
    }

       @POST
       @Produces("application/xml")
       @Consumes({"application/x-www-form-urlencoded", "multipart/form-data"})
       public String doPost(@FormParam("xml") String xml) {
           return "<xml></xml>";
       }
}

私がヒットした URL は次のとおりです: http://localhost/hosting/demo/example

4

4 に答える 4

3

web.xml の url-pattern を次のように変更します。

<url-pattern>/demo/*</url-pattern>
于 2009-06-09T11:54:56.710 に答える
0

以下についてダモに同意します。

<url-pattern>/demo/*</url-pattern>

また、次を追加します。

<load-on-startup>1</load-on-startup>

前:

</servlet>

Mavenを使用していると思います。Hibernate 3.2.4 は ASM 3.1 で問題なく動作するため、その依存関係は無視できます。このエントリは、Jersey で機能します。

   <dependency><!--  hibernate 3.2.4.ga -->
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate</artifactId>
        <version>3.2.6.ga</version>
            <exclusions>
                    <exclusion>
                            <groupId>asm</groupId>
                            <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                            <groupId>asm</groupId>
                            <artifactId>asm-attrs</artifactId>
                    </exclusion>              
                    <exclusion>
                            <groupId>cglib</groupId>
                            <artifactId>cglib</artifactId>
                    </exclusion>
            </exclusions>

    </dependency>
于 2009-06-09T15:47:59.670 に答える
0

私が理解した問題は、ASM 2.2.3 と ASM 3.1 を必要とする Jersey の互換性の問題でした。Hibernate は ASm 2.2.3 に依存します。

このバグはhttp://opensource.atlassian.com/projects/hibernate/browse/EJB-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanelで報告されています

これに対する回避策を見つけようとしていますが、cglib 2.2 と cglib-nodep も役に立たないため、うまくいかないようです。

javassist は、hibernate の XML 構成ファイルを介して使用することはできません。hibernate.properties ファイルが必要です。私が取り組んでいるプロジェクトでは、hibernate.cfg.xml を使用していました。

解決策はありますか?

于 2009-06-10T05:09:28.087 に答える
0

URL の「ホスティング」部分は正しいですか? デプロイされた Web アプリは何ですか? Web アプリで任意のページにアクセスできますか?

jsp を Web アプリに追加してみて、ヒットできるかどうかを確認してください。

于 2009-06-09T10:49:12.053 に答える