에 대한 자신감이 나는 문서를 생성하기위한 내 자바 REST 서비스와 자신감을 통합하려합니다. 나는 Dependency Injection으로 REST 서비스를 위해 Jersey-guice를 사용하고있다. 저지 버전은 1.18.2입니다. 배포 용 JBOSS 5.1.2를 사용하고 있습니다. 설정이 샘플 프로젝트와 약간 다릅니다. Jersey는 서블릿이 아닌 리스너로 사용됩니다. 내 web.xml 파일은 다음과 같습니다 -오류 - 자바 Guice 저지
com.mitchell.services.estimatehelper.ioc.GuiceServletConfig
<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
나는이 같은 GuiceServletConfig이 -
com.mitchell.services .estimatehelper.ioc.GuiceServletConfig
<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
AppInjector은 다음과 같습니다 -이를 배포 할 때
공용 클래스 AppInjector는 ServletModule를 확장 {
protected void configureServlets() {
bind(ServletContainer.class).in(Singleton.class);
final Map<String, String> params = new HashMap<String, String>();
params.put("com.sun.jersey.api.json.POJOMappingFeature", "true");
params.put("javax.ws.rs.Application", Application.class.getName());
params.put("jersey.config.server.wadl.disableWadl", "true");
ReflectiveJaxrsScanner scanner = new ReflectiveJaxrsScanner();
scanner.setResourcePackage(getClass().getPackage().getName());
ScannerFactory.setScanner(scanner);
bind(EstimateController.class);
bind(EstimateHelper.class)
.to(EstimateHelperImpl.class);
serve("/*").with(GuiceContainer.class, params);
}
은}
는, 스캐너는 아래의 예외가 발생
2014-12 -22 12 : 58 : 40,573 ERROR [STDERR] (RMI TCP 연결 (2) -127.0.0.1) SLF4J : slf4j-api 1.6.x 이상은이 바인딩과 호환되지 않습니다. 2014-12-22 12 : 58 : 40,573 ERROR [STDERR] (RMI TCP 연결 (2) -127.0.0.1) SLF4J : 바인딩이 1.5.5 또는 이전 버전입니다. 2014-12-22 12 : 58 : 40,573 ERROR [STDERR] (RMI TCP 연결 (2) -127.0.0.1) SLF4J : 바인딩을 버전 1.6.x로 업그레이드하십시오. 또는 2014년 12월 22일 2.0.x가 12 : 58 : 40,573 ERROR [... org.apache.catalina.core.ContainerBase [jboss.web [로컬 호스트]/추정치 헬퍼-RS-1.0.0] org.slf4j.impl.StaticLoggerBinder.getSingleton (: (RMI TCP 연결 (2) -127.0.0.1) 예외 클래스의 인스턴스를 com.mitchell.services.estimatehelper.ioc.GuiceServletConfig java.lang.NoSuchMethodError을 청취자에게 컨텍스트 초기화 이벤트를 전달하기) Lorg/slf4j/impl/StaticLoggerBinder; org.slf4j.LoggerFactory.getILoggerFactory에서 org.slf4j.LoggerFactory.performInitialization (LoggerFactory.java:108) 에서 org.slf4j.LoggerFactory.bind (LoggerFactory.java:128) (LoggerFactory.java:279) 에서 에서 org.slf4j.LoggerFactory.getLogger (LoggerFactory.java:252) (org.localization.java:265)) at com.mitchell.services.estimatehelper.ioc.AppInjector.configureServlets (AppInjector.java:30) at com.google.inject.servlet.ServletModule.configure (ServletModule.java:53) at com.google.inject .AbstractModule.configure (AbstractModule.java:59) at com.google.in com.google.inject.internal.InjectorShell $ 빌더에서 com.google.inject.spi.Elements.getElements에서 ject.spi.Elements $ RecordingBinder.install (Elements.java:223) (Elements.java:101) . 빌드 (InjectorShell.java:133) 에서 com.google.inject.internal.InternalInjectorCreator.build (InternalInjectorCreator.java:103) at com.google.inject.Guice.createInjector (Guice.java:95) at com. google.inject.Guice.createInjector (Guice.java:72) at com.google.inject.Guice.createInjector (Guice.java : 62)
이 문제를 계속 연구 한 후에이 오류는 JBoss에서 사용하는 로깅 라이브러리로 인한 것임을 깨달았습니다. 나는이 문제를 해결하기 위해 할 수있는 일
있습니까 : 오류는 예외 클래스 com.mitchell.services.estimatehelper.ioc.GuiceServletConfig java.lang.NoSuchMethodError의 인스턴스를 청취자에게 초기화 이벤트가 컨텍스트를 보내는입니까? ? 도와주세요!!
감사합니다, SDD
고마워요! 내가 maven을 사용하고 있지만, maven 종속성을 확인할 때 SLF4J에 의존하지 않습니다. SLF4J에 의존하는 JBoss라고 생각합니다. 그 일을 위해 할 수있는 일이 있는지 확실하지 않습니다. – sdd
swagger-core가 그것을 끌어 오기 때문에 적어도 하나의 SLF4J 종속성이 있어야합니다. – Ron