-2

私は Fabric8-1.2.0.Beta4 を使用し、REST サンプル アプリケーション ( http://tomee.apache.org/examples-trunk/rest-example/README.htmlから取得) を Fabric8 の Tomee にデプロイしようとしている初心者です。openejb-cxf-rs と tomee-jaxrs をインクルードしても効果がないようです。

変更のみ: 1) web.xml http://tomee-openejb.979440.n4.nabble.com/Problem-deploying-REST-Examples-on-Eclipse-td4582815.htmlで提案されているように、以下を追加しました。

    <servlet>
       <servlet-name>ApplicationConfig</servlet-name>
       <init-param>
           <param-name>javax.ws.rs.Application</param-name>
           <param-value>ApplicationConfig</param-value>
       </init-param>
    </servlet>
    <servlet-mapping>
       <servlet-name>ApplicationConfig</servlet-name>
       <url-pattern>/*</url-pattern>
    </servlet-mapping> 

2) fabric8:deploy を使用して war ファイルをデプロイし、rest-example プロファイルを作成するために、fabric8-maven-plugin および distributionManagement を pom.xml に追加しました。

    <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>fabric8-maven-plugin</artifactId>
        <version>1.2.0.Beta4</version>
        <configuration>
            <parentProfiles>containers-tomee hawtio</parentProfiles>
            <profile>${fabric8.profile}</profile>
            <profileVersion>${fabric8.version}</profileVersion>
            <jolokiaUrl>http://${deploy-host}:${deploy-port}/jolokia</jolokiaUrl>
            <webContextPath>/rest-example</webContextPath>
        </configuration>
    </plugin>


    <distributionManagement>  
        <repository>  
            <id>fabric-maven-proxy</id>  
            <name>FMC Maven Proxy</name>  
            <!-- Change to your target host -->  
            <url>fabric::default::http://admin:${password}@${deploy-host}:${deploy-port}/maven/upload/</url>
        </repository>  
    </distributionManagement> 

その後、REST アプリケーションを開始するためのコンテナーを作成しました。index.html を表示できますが、WS を呼び出そうとすると常に 403 または 404 エラーが発生します。

助けてください。ありがとう


web.xml の変更を削除し、apache-tomee-jaxrs-1.7.1 をダウンロードして、このバージョンの tomee で実行するように構成すると、問題なく実行できます。

Fabric8-1.2.0.Beta4 で動作させるには、jaxrs と webprofile のバージョンの違いを把握する必要があります。


変更後の Web.xml:

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <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_2_5.xsd"
             metadata-complete="false"
             version="2.5">
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>WEB-INF/beans.xml</param-value>
        </context-param>

        <listener>
            <listener-class>
              org.springframework.web.context.ContextLoaderListener
             </listener-class>
        </listener>

        <servlet>
            <servlet-name>CXFServlet</servlet-name>
            <display-name>CXF Servlet</display-name>
            <servlet-class>
                org.apache.cxf.transport.servlet.CXFServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>

        <servlet-mapping>
            <servlet-name>CXFServlet</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
    </web-app>

変更後の beans.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:jaxrs="http://cxf.apache.org/jaxrs"
           xsi:schemaLocation="
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://cxf.apache.org/jaxrs
           http://cxf.apache.org/schemas/jaxrs.xsd">

          <!-- do not use import statements if CXFServlet init parameters link to this beans.xml -->

         <import resource="classpath:META-INF/cxf/cxf.xml" />
         <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

         <jaxrs:server id="restExampleService" address="/rest-example">
            <jaxrs:serviceBeans>
                <ref bean="postWS" />
                <ref bean="commentWS" />
                <ref bean="userWS" />
            </jaxrs:serviceBeans>
         </jaxrs:server>

         <bean id="postWS" class="org.superbiz.rest.service.PostService" />
         <bean id="commentWS" class="org.superbiz.rest.service.CommentService" />
         <bean id="userWS" class="org.superbiz.rest.service.UserService" />
   </beans>

また、Fabric8 のプロファイルに 4 つの機能を追加しました: spring-web spring cxf-jaxrs fabric-rest

4

1 に答える 1

0

webprofile バージョンは JAXRS (プロバイダーなし) をサポートしていませんが、jaxrs および plus バージョンには組み込まれています。

于 2014-10-28T21:38:23.090 に答える