2014-06-23 1 views
2

웹 응용 프로그램에서 tomcat을 사용하려고하며 외부 인스턴스에 전개하는 대신 Tomcat 서블릿 컨테이너를 HTTP 런타임으로 포함시키기 위해 Spring의 지원을 사용하려고합니다. 튜토리얼에서 나는 떨어져 내 응용 프로그램을 내놓고 오전 : http://spring.io/guides/gs/messaging-stomp-websocket/이클립스 오류 : 웹 소켓은 현재 Tomcat에서만 지원됩니다.

을 그러나, 나는이 스택 오류가 점점 오전 :

Caused by: java.lang.IllegalStateException: Websockets are currently only supported in Tomcat (found class org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory). 
at org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration$1.customize(WebSocketAutoConfiguration.java:74) 
at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:67) 
at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:54) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1545) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
... 16 more 

나는 그것이 봄 예를 들어 지금이 아니라 무슨 일이 일어나고 방법을 잘 모르겠어요.

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0      http://maven.apache.org/maven-v4_0_0.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>org.springframework</groupId> 
<artifactId>gs-messaging-stomp-websocket</artifactId> 
<version>0.1.0</version> 
<url>http://www.springframework.org</url> 

<properties> 
    <maven.test.failure.ignore>true</maven.test.failure.ignore> 
    <spring.framework.version>3.0.6.RELEASE</spring.framework.version> 
</properties> 

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.1.1.RELEASE</version> 
    </parent> 


<repositories> 
    <repository> 
     <id>spring-snapshots</id> 
     <url>http://repo.spring.io/libs-snapshot</url> 
     <snapshots><enabled>true</enabled></snapshots> 
    </repository> 
</repositories> 
<pluginRepositories> 
    <pluginRepository> 
     <id>spring-snapshots</id> 
     <url>http://repo.spring.io/libs-snapshot</url> 
     <snapshots><enabled>true</enabled></snapshots> 
    </pluginRepository> 
</pluginRepositories> 
<dependencies> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-websocket</artifactId> 
     <version>1.1.1.RELEASE</version> 
     <exclusions> 
      <exclusion> 
       <artifactId>log4j-over-slf4j</artifactId> 
       <groupId>org.slf4j</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-messaging</artifactId> 
     <version>4.0.5.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-all</artifactId> 
     <version>5.10.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-core</artifactId> 
     <version>2.13.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.directory.studio</groupId> 
     <artifactId>org.apache.commons.pool</artifactId> 
     <version>1.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>apache-camel</artifactId> 
     <version>2.13.1</version> 
     <type>pom</type> 
    </dependency> 
    <dependency> 
     <groupId>jdk.tools</groupId> 
     <artifactId>jdk.tools</artifactId> 
     <scope>system</scope> 
     <version>1.6</version> 
     <systemPath>C:\Program Files\Java\jdk1.8.0_05\lib\tools.jar</systemPath> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
     <version>1.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-webapp</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-websocket</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-autoconfigure</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
    </dependency> 
</dependencies> 
    <build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
     </plugin> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

나는 봄의 예를 사용하는 모든 종속성이 : 여기 내 POM이다. 애플리케이션의 Tomcat 사용 능력에 영향을 줄 수있는 요인은 무엇입니까?

미리 도움을 청하십시오!

편집 : 여기

package hello; 

import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.boot.SpringApplication; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.stereotype.Component; 

@Component 
@EnableAutoConfiguration 
public class Application { 


    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

내 주요입니다 : 여기

이 Application.class입니다

package com.example.integration; 

import hello.*; 

import org.apache.camel.ProducerTemplate; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 


public class TestCamelSpring { 

public static void main(String[] args) { 
    ApplicationContext context = new ClassPathXmlApplicationContext("camelspring.xml"); 
    ProducerTemplate camelTemplate = context.getBean("camelTemplate", ProducerTemplate.class); 

    Application.main(args); 
    System.out.println("Message Sending started"); 
    camelTemplate.sendBody("jms:queue:testQSource","Sample Message"); 
    System.out.println("Message sent"); 

} 

}

+0

사용중인 Tomcat의 버전은 무엇입니까? –

+0

잘 모르겠습니다. Spring @EnableAutoConfiguration 어노테이션은 Tomcat 인스턴스를 자동으로 시작하기로되어 있지만 여기서는 일어나지 않는 것 같습니다. 주석과 이전 질문을 내 질문에 부르는 클래스를 추가했습니다. – Theo

답변

0

당신은 부두 의존성이 있습니다

<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-webapp</artifactId> 
</dependency> 

그래서 기본적으로 임베디드 Tomcat을 Jetty로 대체합니다. 부두를 원하지 않으면 부두 의존을 사용하지 마십시오.