2013-01-13 3 views
0

글쎄, 내 프로젝트에 스프링 통합에 필요한 모든 요소를 ​​추가 한 이후로 내 프로젝트에 스프링 종속성 주입을 추가하려고하는데, 웹 프로젝트가 배포되지 않습니다. 스프링 구성과 관련이 있다고 생각하는 이유는 무엇입니까? 그럼 어떤 스프링 구성에게 angel이라는 GUI를 추가하기 전에, 서블릿 완벽하게 배포 등을 실행하려고 할 때이 오류를 받고 있어요 지금 저지 나머지 웹 서비스 ...스프링 구성 문제 - 응용 프로그램 클래스를로드하지 못했습니다.

을했다 :

INFO: Initializing Spring root WebApplicationContext 
2013-01-13 20:46:27,984 [localhost-startStop-1] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started 
2013-01-13 20:46:28,140 [localhost-startStop-1] INFO org.springframework.context.support.AbstractApplicationContext - Refreshing Root WebApplicationContext: startup date [Sun Jan 13 20:46:28 EET 2013]; root of context hierarchy 
2013-01-13 20:46:28,247 [localhost-startStop-1] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [com/nortal/pirs/spring/application-context.xml] 
2013-01-13 20:46:28,750 [localhost-startStop-1] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]275d728c: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.config.internalBeanConfigurerAspect,org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor#0,org.springframework.context.annotation.CommonAnnotationBeanPostProcessor#0,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy 
2013-01-13 20:46:28,850 [localhost-startStop-1] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 861 ms 
Sau 13, 2013 8:46:28 PM com.sun.jersey.api.core.PackagesResourceConfig init 
INFO: Scanning for root resource and provider classes in the packages: 
    com.nortal.pirs.webservices 
Sau 13, 2013 8:46:29 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate 
INFO: Initiating Jersey application, version 'Jersey: 1.15 10/30/2012 03:41 PM' 
Sau 13, 2013 8:46:29 PM com.sun.jersey.server.impl.application.RootResourceUriRules <init> 
SEVERE: The ResourceConfig instance does not contain any root resource classes. 
Sau 13, 2013 8:46:29 PM org.apache.catalina.core.ApplicationContext log 
SEVERE: StandardWrapper.Throwable 
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. 
    at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1300) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:163) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:769) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:765) 
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:765) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:760) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:489) 
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:319) 
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609) 
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Sau 13, 2013 8:46:29 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /PIRS_Fix threw load() exception 
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. 
    at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1300) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:163) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:769) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:765) 
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:765) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:760) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:489) 
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:319) 
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609) 
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Sau 13, 2013 8:46:29 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Sau 13, 2013 8:46:29 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Sau 13, 2013 8:46:29 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 7132 ms 
Sau 13, 2013 8:46:31 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Allocate exception for servlet PirsVaadinFrontend 
javax.servlet.ServletException: Failed to load application class: com.nortal.pirs.presentation.vaadin.PirsVaadinController 
    at com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:71) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

I을 저지 웹 서비스 서블릿 부분을 제거하려고 시도했지만 여전히 vaadin 프론트 엔드 서블릿을로드 할 수 없었습니다. 저지없이 오류가 발생하면 게시 할 수 있지만 필요하지 않다고 생각했습니다.

내 web.xml의 :

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" 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"> 

    <display-name>PIRS_Web</display-name> 

    <!-- Vaadin --> 

    <context-param> 
     <description>Vaadin production mode</description> 
     <param-name>productionMode</param-name> 
     <param-value>true</param-value> 
    </context-param> 

    <servlet> 
     <servlet-name>PirsVaadinFrontend</servlet-name> 
     <servlet-class> 
      com.vaadin.terminal.gwt.server.ApplicationServlet 
     </servlet-class> 
     <init-param> 
      <description>Vaadin application class to start</description> 
      <param-name>application</param-name> 
      <param-value> 
       com.nortal.pirs.presentation.vaadin.PirsVaadinController 
      </param-value> 
     </init-param> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>PirsVaadinFrontend</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

    <!-- Spring --> 

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

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:com\nortal\pirs\spring\application-context.xml</param-value> 
    </context-param> 

    <!-- EmailCheck REST web service --> 
    <servlet> 
     <servlet-name>emailCheckService</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>com.nortal.pirs.webservices</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>emailCheckService</servlet-name> 
     <url-pattern>/webservices/*</url-pattern> 

    </servlet-mapping> 

    <!-- General parameters --> 
    <!-- <session-config> <session-timeout>240</session-timeout> </session-config> --> 

</web-app> 

내 봄 응용 프로그램의 context.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:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 

    <context:annotation-config/> 

    <!-- Turn on AspectJ @Configurable support --> 
    <context:spring-configured /> 

    <context:component-scan base-package="com.nortal.pirs.test.independent"></context:component-scan> 
    <context:component-scan base-package="com.nortal.pirs.businesslogic.logic"></context:component-scan> 

    <!-- Turn on @Autowired, @PostConstruct etc support --> 
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" /> 
    <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" /> 

</beans> 

나는 뉴저지 부분을 제거하면, 내가 할이 :

2013-01-13 20:35:23,630 [localhost-startStop-1] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 741 ms 
Sau 13, 2013 8:35:23 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Sau 13, 2013 8:35:23 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Sau 13, 2013 8:35:23 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 6144 ms 
Sau 13, 2013 8:35:25 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Allocate exception for servlet PirsVaadinFrontend 
javax.servlet.ServletException: Failed to load application class: com.nortal.pirs.presentation.vaadin.PirsVaadinController 
    at com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:71) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

webservice 클래스는 다음과 같습니다.

package com.nortal.pirs.webservices; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Qualifier; 
import org.springframework.stereotype.Service; 

import com.nortal.pirs.businesslogic.factories.ControllerFactoryProvider; 
import com.nortal.pirs.businesslogic.interfaces.UserManagerInterface; 

@Path("/emailcheck/{emailAddress}") 
public class EmailCheckService { 

    //@Autowired 
    //@Qualifier("UserManager") 
    private UserManagerInterface userManager = ControllerFactoryProvider.getInstance().createUserManager(); 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public String emailExists(@PathParam("emailAddress") String email) { 
     if (userManager.emailExists(email)) { 
      return "true"; 
     } else { 
      return "false"; 
    } 
    } 

    public void setUserManager(UserManagerInterface userManager) { 
     this.userManager = userManager; 
    } 
} 

누구나 이런 종류의 문제가 발생 했습니까? 나는 그것이 구성에 스프링을 추가했기 때문에 그것이라고 생각했지만, 제거해도 작동하지 않는 것 같았습니다. 실제로 web.xml에서 아무것도 작동하지 않는 것 같습니다. 아마도 Tomcat에서 뭔가 있을까요? Eclipse에서 구성된 Tomcat 7을 사용하고 있습니다. 청소를 시도했지만 도움이되지 않는 것 같습니다. 나는 정말로 혼란 스럽다.

답변

0

Jersey는 Jersey RESTful 웹 서비스로 실행될 수있는 클래스를 찾을 수 없습니다.

체크 :

  • com.sun.jersey.config.property.packages 여부는 당신의 web.xml에서 누락되어 - 좋아 보인다.
  • com.sun.jersey.config.property.packages param의 값이 누락되었거나 유효하지 않은지 여부 - 알 수 없습니다.
  • @Path 주석이 달린 메소드가있는 POJO가 하나 이상 있는지 여부를 알 수 없습니다.
  • 이 예외에 대한 many Google hits이 더 이상 도움이되는 경우.
+0

글쎄 웹에서 webservice 부분이 없어도 webservice 파일을 편집하고 제공했습니다.xml은 여전히 ​​배포에 실패합니다. 그리고 스프링이 아니기 때문에 솔직히 web.xml에있는 것 중 아무 것도 작동하지 않는 것 같습니다. –

0

Resource 클래스가이 패키지 (com.nortal.pirs.webservices)에 web.xml에 정의 된대로 있는지 확인할 수 있습니까? 서버 로그는 리소스 클래스를 찾을 수 없음을 나타냅니다. 해당 패키지에 Resource 클래스가 포함되어 있다고 가정하면 서버 로그에 클래스 목록이 표시됩니다. 나는 문제없이 Spring과 Jersey를 함께 사용하는 프로젝트를 가지고있다.

아마도 web.xml에서 servletservlet-mappingPirsVaadinFrontend으로 비활성화하고 Jersey 오류를 먼저 디버깅 할 수 있습니다. 여기에 2 개의 다른 오류가 있습니다. 다른 문제가 발생하는 한 가지 문제인지 또는 2 개의 독립적 인 문제가 있는지 확실하지 않습니다.

+0

글쎄, 그 파일에있는 코드를 볼 수 있듯이 제 질문을 편집했습니다. 문제는 작동했고 패키지 구조를 변경하지 않았습니다. 그러나 한 가지는 내가 틀 렸습니다. 그것은 스프링이 될 수 없습니다. 왜냐하면 제가 그것을 제거했기 때문에 여전히 똑같습니다. 이전에 효과가 있었지만 지금은 전혀 작동하지 않습니다. 또한 말합니다 : javax.servlet.ServletException : 응용 프로그램 클래스를로드하지 못했습니다 : com.nortal.pirs.presentation.vaadin.PirsVaadinController 내 질문에 한. 나는 그것이 하나의 문제, 주로 서블릿이 배포되는 것을 막는 자임 의심입니다. –

+0

이 두 링크 모두 문제를 해결합니까? http://stackoverflow.com/questions/13929352/vaadin-servletexception-failed-to-load-application-class and https://vaadin.com/forum/-message_boards/view_message/1633987 – limc

관련 문제