2013-03-13 10 views
0

Je suis en train d'obtenir un service Web à l'aide jaxrs et jetée:jaxrs avec jetée intégré

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> 

mon service reste ressemble à ceci:

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

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

chaque fois que je fais une demande à localhost: 8080/services/test j'obtiens l'erreur "service not found". Je voulais configurer mon serveur embarqué avec jetée jaxrs mais il ne semble pas fonctionner. Ai-je mal configuré jetée?

Répondre

0

Si vous utilisez Spring et toutes vos dépendances sont bien placés, la seule chose que vous avez besoin d'exposer un service reposant est votre premier fichier.

CxF-rt-transport-http-jetée se chargera du lien entre votre code de service et le serveur de la jetée.

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-3.2.xsd http://cxf.apache.org/jaxrshttp://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> 

Hope it helps.

Questions connexes