2017-12-12 3 views
0

나는 SpringBoot 응용 프로그램을 만들었습니다. 3.9.1.RELEASE 및 인터넷 프로토콜 이 메인 클래스를 통해 메시지를 수신 및 전송을위한 채널 어댑터를 제공하기 때문에 봄 통합을 사용하여 : :ClassNotFoundException : OrderlyShutdownCapable

@SpringBootApplication 
public class TelefonicaHandlerApplication { 

    public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException { 

     ConfigurableApplicationContext context = SpringApplication.run(TelefonicaHandlerApplication.class, args); 
     Socket socket = SocketFactory.getDefault().createSocket("localhost", 9999); 
     socket.getOutputStream().write("foo\r\n".getBytes()); 
     socket.close(); 
     Thread.sleep(1000); 
     context.close(); 
    } 

    @Bean 
    public TcpNetServerConnectionFactory cf() { 
     return new TcpNetServerConnectionFactory(9999); 
    } 

    @Bean 
    public TcpReceivingChannelAdapter inbound(AbstractServerConnectionFactory cf) { 
     TcpReceivingChannelAdapter adapter = new TcpReceivingChannelAdapter(); 
     adapter.setConnectionFactory(cf); 
     adapter.setOutputChannel(tcpIn()); 
     return adapter; 
    } 

    @Bean 
    public MessageChannel tcpIn() { 
     return new DirectChannel(); 
    } 

    @Transformer(inputChannel = "tcpIn", outputChannel = "serviceChannel") 
    @Bean 
    public ObjectToStringTransformer transformer() { 
     return new ObjectToStringTransformer(); 
    } 

    @ServiceActivator(inputChannel = "serviceChannel") 
    public void service(String in) { 
     System.out.println(in); 
    } 
} 

이 그 봄 도구 스위트 버전을 사용하여 연결을 허용하는 TCP 연결을 만들 pom.xml 파일의 종속성은 무엇입니까

<dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-jdbc</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.integration</groupId> 
      <artifactId>spring-integration-core</artifactId> 
     </dependency> 

     <dependency> 
       <groupId>org.springframework.integration</groupId> 
       <artifactId>spring-integration-ip</artifactId> 
      </dependency> 

      <dependency> 
      <groupId>org.springframework.integration</groupId> 
       <artifactId>spring-integration-ws</artifactId> 
      </dependency> 

      <dependency> 
       <groupId>org.springframework.integration</groupId> 
       <artifactId>spring-integration-xml</artifactId> 
      </dependency> 

    </dependencies> 

하지만 앱을 시작할 때.

Error: A JNI error has occurred, please check your installation and try again 
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/integration/context/OrderlyShutdownCapable 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
    at java.lang.Class.getMethod0(Class.java:3018) 
    at java.lang.Class.getMethod(Class.java:1784) 
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
Caused by: java.lang.ClassNotFoundException: org.springframework.integration.context.OrderlyShutdownCapable 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 19 more 

답변

0

org.springframework.integration.context.OrderlyShutdownCapablespring-integration-core과 버전 2.2부터 제공됩니다 :이 오류가 발생했습니다. 스프링 부트를 사용하기 때문에 나는 어쨌든 당신에게 적절한 spring-integration-core 의존성을 제공한다고 확신한다.

STS에 문제가있을 수 있습니다. 다시 설치하십시오. 또는 spring-integration-core 아티팩트가 깨졌습니다. 로컬 Maven을 정리하고 모든 종속성을 다시 다운로드해야합니다.

관련 문제