0

jaxrsjettyを使用してWebサービスを起動しようとしています:

これは私のjaxrms.xmlファイルです:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:cxf="http://cxf.apache.org/core"
        xmlns:jaxrs="http://cxf.apache.org/jaxrs"
        xsi:schemaLocation="
     http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
     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">

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

    <bean id="restService" class="com.as.rover.service.rest.RestService" >
    </bean>

    <jaxrs:server id="jaxrsRestService" address="/rest/">
        <jaxrs:serviceBeans>
            <ref bean="restService" />
        </jaxrs:serviceBeans>

    </jaxrs:server>



</beans>

これは私のjetty.xmlファイルです:

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



    <bean class="com.as.rover.service.JettyManager" factory-method="getInstance" id="jettyManager"> 
        <property name="server" >
            <bean id="jetty-server" class="org.eclipse.jetty.server.Server" init-method="start" destroy-method="stop">
                <property name="connectors">
                  <list>
                    <bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
                      <property name="port" value="8080"/>
                    </bean>
                  </list>
                </property>


                <property name="handler">
                  <bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerList">
                    <property name="handlers">
                      <list>
                        <ref bean="servletContextHandler"></ref>
                        <!--bean class="org.eclipse.jetty.server.handler.ResourceHandler">
                          <property name="directoriesListed" value="true"/>
                          <property name="welcomeFiles">
                            <list>
                              <value>index.html</value>
                            </list>
                          </property>
                          <property name="resourceBase" value="."/>
                        </bean>       
                        <bean class="org.eclipse.jetty.server.handler.DefaultHandler"/-->
                        <!-- add more handlers here -->
                      </list>
                    </property>
                  </bean>
                </property>
              </bean>
        </property>
    </bean>
    <bean id="web-context" class="org.eclipse.jetty.webapp.WebAppContext">
                            <property name="resourceBase" value="./src/main/web"></property>
                            <property name="contextPath" value="/services/*"></property>    

    <bean id="servletContextHandler" class="org.eclipse.jetty.servlet.ServletContextHandler">
                            <property name="contextPath" value="/" />                                   
                        </bean>
    <bean id="javaVersion" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
         <property name="targetObject" ref="servletContextHandler"/>
         <property name="targetMethod" value="addServlet"/>
         <property name="arguments">
           <list>
            <bean class="org.eclipse.jetty.servlet.ServletHolder">
                                                <property name="name" value="services" />
                                                <property name="servlet">
                                                    <bean class="org.apache.cxf.transport.servlet.CXFServlet"/>

                                                </property>
                                            </bean>
            <value>/</value>
           </list>
         </property>
        </bean>

        </beans>

私のRESTサービスクラスは次のようになります。

@Path("/test") // bind to versionnr in path  
public class RestService{

  @GET
  public long get() {
      return 1L;
  }
}

リクエストするlocalhost:8080/services/testと、次のエラーメッセージが表示されます。

サービスが見つかりません。

組み込みJettyサーバーをjaxrsで構成したいのですが、機能しないようです。突堤の設定を間違えましたか?

4

1 に答える 1

0

Spring を使用していて、すべての依存関係が適切に配置されている場合、安らかなサービスを公開するために必要なのは最初のファイルだけです。

cxf-rt-transports-http-jetty は、サービス コードと jetty サーバー間のリンクを処理します。

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http:/ /www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2 .xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd ">

<context:annotation-config />

    <bean id="serviceImpl" class="com.as.rover.service.rest.serviceImpl" ></bean>

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

<jaxrs:server id="JaxrsService" address="http://localhost:6066/services">
    <jaxrs:serviceBeans>
        <ref bean="serviceImpl" />
    </jaxrs:serviceBeans>
</jaxrs:server>

それが役に立てば幸い。

于 2014-01-10T11:38:34.843 に答える