2010-06-24 24 views
6

Ben formayı kullanarak, (daha doğrusu Java EE yerine) bir web sunucusu gömme iskele yaratmaya çalıştığını ve restfully benim servlets map ediyorum. Ben bağımlılık enjeksiyon için yay kullanarak ve ben eşlenen servlets bir HTTP req yapmaya çalıştığınızda, ancak fasulye olarak servlet haritalama i hata 500- sunucu hatası alıyorum, veya 404, sayfa bulunamadı değilim
. ben bu doğru şekilde yapıyorum
Emin değilim, ve ben muhtemelen bu daha ziyade jetty.xml kullanıyor olmalıdır. (Bir shorcut kullanarak jetty.xml olmadığını merak)birleştirmek mümkündür: forması + iskelesi + bahar

<bean id="contexts" 
    class="org.eclipse.jetty.server.handler.ContextHandlerCollection"> 
</bean> 

<bean id="server" class="org.mortbay.jetty.spring.Server" 
    init-method="start" destroy-method="stop"> 
    <property name="threadPool"> 
     <bean id="ThreadPool" class="org.eclipse.jetty.util.thread.QueuedThreadPool"> 
      <property name="minThreads" value="10" /> 
      <property name="maxThreads" value="50" /> 
     </bean> 
    </property> 
    <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.HandlerCollection"> 
      <property name="handlers"> 
       <list> 
        <ref bean="contexts" /> 
        <bean class="org.eclipse.jetty.server.handler.ResourceHandler"> 
         <property name="directoriesListed" value="true" /> 
         <property name="welcomeFiles"> 
          <list> 
           <value>index.jsp</value> 
          </list> 
         </property> 
         <property name="resourceBase" value="./WebContent" /> 
        </bean> 
        <bean id="myServletHandler" class="org.eclipse.jetty.servlet.ServletHandler"> 
         <property name="servlets"> 
          <list> 
           <bean id="jerseyServletContainer" class="org.eclipse.jetty.servlet.ServletHolder"> 
            <property name="name" value="jersey" /> 
            <property name="servlet"> 
             <bean class="com.sun.jersey.spi.container.servlet.ServletContainer" /> 
            </property> 
            <property name="initParameters"> 
             <map> 
              <entry key="com.sun.jersey.config.property.resourceConfigClass" 
               value="com.sun.jersey.api.core.PackagesResourceConfig" /> 
              <entry key="com.sun.jersey.config.property.packages" 
               value="servlets" /> 
             </map> 
            </property> 

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

         <property name="servletMappings"> 
          <list> 

           <bean id="jerseyMapping" class="org.eclipse.jetty.servlet.ServletMapping"> 
            <property name="servletName" value="jersey" /> 
            <property name="pathSpec" value="/*" /> 
           </bean> 


          </list> 
         </property> 
        </bean> 
       </list> 
      </property> 
     </bean> 
    </property> 
    <property name="beans"> 
     <list> 
      <bean id="ContextDeployer" class="org.eclipse.jetty.deploy.ContextDeployer"> 
       <property name="contexts" ref="contexts" /> 
       <property name="directory" value="contexts" /> 
       <property name="scanInterval" value="5" /> 
      </bean> 
     </list> 
    </property> 
</bean> 

Ben servlet'ler paketinde bir sınıf var:


package servlets; 

import javax.ws.rs.GET; 

import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 

@Path("/nothing") 
public class doNothing 
{ 
    @GET 
    @Produces("text/plain") 
    public String returnNothing() 
    { 
     return ("test"); 
    } 


} 

neyi dünyada DoNothing.java ben yanlış yapıyorum? ya da dünyadaki neyi doğru yaptığımı sormalı mıyım?

Teşekkür

cevap

1

Ben Jersey + Bahar + İskele Gömülü ve bu soruyu buldum kullanmak için bir yol arıyordu. Metodunu denedim ve aslında işe yarıyor.

Sonra ile Kaynaklar tanımlayın:: Dosya AdditionalBeansContext.xml olarak

<bean id="server" class="org.mortbay.jetty.Server" destroy-method="stop"> 
    <property name="connectors"> 
     <list> 
      <bean id="Connector" class="org.mortbay.jetty.nio.SelectChannelConnector"> 
       <property name="port" value="8080"/> 
      </bean> 
     </list> 
    </property> 
    <property name="handlers"> 
     <list> 
      <bean class="org.mortbay.jetty.servlet.Context"> 
       <property name="contextPath" value="/"/> 
       <property name="sessionHandler"> 
        <bean class="org.mortbay.jetty.servlet.SessionHandler" /> 
       </property> 
       <property name="servletHandler"> 
        <bean class="org.mortbay.jetty.servlet.ServletHandler"> 
         <property name="servlets"> 
          <list> 
           <bean class="org.mortbay.jetty.servlet.ServletHolder"> 
            <property name="name" value="jersey" /> 
            <property name="servlet"> 
             <bean class="com.sun.jersey.spi.spring.container.servlet.SpringServlet" /> 
            </property> 
            <property name="initParameters"> 
             <map> 
             <entry key="com.sun.jersey.spi.container.ContainerRequestFilters" 
              value="com.sun.jersey.api.container.filter.LoggingFilter" /> 
             <entry key="com.sun.jersey.spi.container.ContainerResponseFilters" 
              value="com.sun.jersey.api.container.filter.LoggingFilter" /> 
            </map> 
            </property> 

           </bean> 
          </list> 
         </property> 
         <property name="servletMappings"> 
          <list> 
           <bean class="org.mortbay.jetty.servlet.ServletMapping"> 
            <property name="servletName" value="jersey"/> 
            <property name="pathSpecs"> 
             <list> 
              <value>/*</value> 
             </list> 
            </property> 
           </bean> 
          </list> 
         </property> 
        </bean> 
       </property> 
       <property name="eventListeners"> 
        <list> 
         <bean id="requestContextListener" class="org.springframework.web.context.request.RequestContextListener"/> 
         <bean id="contextLoaderListener" class="org.springframework.web.context.ContextLoaderListener"/> 
        </list> 
       </property> 
       <property name="initParams"> 
        <map> 
         <entry key="contextConfigLocation" value="classpath:META-INF/AdditionalBeansContext.xml"/> 
        </map> 
       </property> 
      </bean><!-- 
     --></list> 
    </property> 
</bean> 

: aslında sen forması-yay kullanabileceğiniz kaynaklar Bahar fasulye kullanmak istiyorsanız

@Component açıklama, @Outowired

ile enjekte edilen fasulye