2012-12-03 2 views
1

그래서 Spring 프로젝트에서 JMS에 대한 연결을 설정하는 데이 문제가 있습니다. 문제는 내 클라이언트 구현에있다하고 다음과 같이이다 :JMS glassfish와의 Spring 통합 MQ

public class EndpointHelper implements Runnable{ 


    @Inject 
    public InputDatabaseService inputProxy; 

    private Person mickey = new Person("Mickey", "Mouse"); 


    public void run() { 

     inputProxy.input(mickey); 

    } 

} 

InputDataService 메소드 입력 (사람) 및 입력 방법 데이터베이스에 사람을 추가의 인터페이스입니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'endpointHelper': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public pl.cos.test.camel.service.InputDatabaseService pl.cos.test.ws.endpoint.EndpointHelper.inputProxy; nested exception is org.springframework.jms.MessageFormatException: [C4014]: Serialize message failed. - cause: java.io.NotSerializableException: org.springframework.web.context.support.XmlWebApplicationContext; nested exception is com.sun.messaging.jms.MessageFormatException: [C4014]: Serialize message failed. - cause: java.io.NotSerializableException: org.springframework.web.context.support.XmlWebApplicationContext 
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:609) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:472) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) 
    javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    java.lang.Thread.run(Thread.java:722) 

Person.java 클래스 : 나는 예외 가지고

패키지 pl.famoc.test.camel.service을; import java.io.Serializable;

public class Person implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private String firstName; 
    private String lastName; 

    public Person(String firstName, String lastName) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    public void setFirst(String first){ 
     this.firstName = first; 
    } 
    public void setLast(String last){ 
     this.lastName = last; 
    } 
    public String getFirst(){ 
     return firstName; 
    } 
    public String getLast(){ 
     return lastName; 
    } 
} 

내가 뭘 잘못하고 있는지 알 수 있습니까?

+0

예, 내 게시물을 편집하여 모양이 어떻게 보이는지 보여줍니다. – Grzzzzzzzzzzzzz

+0

당신은이 클래스를'XmlWebApplicationContext' 어딘가에 사용하고 있습니까? –

+0

나는 XmlWebApplicationContext에 대한 직접적인 호출을 보지 못한다. 그러나 내가 사용하고있는 프로젝트는 archetype org.spring.webservice를 가진 maven에서 생성되었으므로, 나의 주요 스프링 컨텍스트 spring-ws-servlet.xml이 어떻게 든 그것을 사용한다고 생각한다. – Grzzzzzzzzzzzzz

답변

0

좋아, 내가 알아 냈어. 문제는 serialization이 아니라 메서드를 처리 할 변수 인 Context의 변수였습니다. 실수로 내 봄 컨텍스트의 기본 구성 요소 인 패키지에 EndpointHelper 클래스를 만들었습니다. <context:component-scan base-package="pl.cos.test.ws.endpoint" /> 내가 원하는 경우 EndpointHelper가 핸드북을 생성 한 이유는 무엇입니까? ApplicationContext.
EndpointHelper을 다른 패키지에 넣기 만하면 문제가 해결됩니다.

관련 문제