JDK 1.6 http 서버에서 저지 1.12를 기반으로 한 편안한 서비스 외관을 만들었습니다. 내가 일식에서 내 응용 프로그램을 시작할 때 모든 것이 잘 작동합니다. 외관상으로 문제없이 통신 할 수 있지만 시작 스크립트로 콘솔을 통해 응용 프로그램을 시작할 때 서비스에 액세스 할 때 IncompatibleClassChangeError가 발생합니다.저지 편안한 서비스 통신 (IncompatibleClassChangeError)
문제의 범위를 좁힐 수있었습니다. 문제는 응답을 보내는 것입니다. 서비스와 정상적으로 통신 할 수 있기 때문에 (요청이 처리됨) 응답을 얻지 못합니다. 이것에 대한 단서가 있습니까? 내 외관의
WARNUNG: Class org....facade.ServiceFacadeImpl is ignored as an instance is registered in the set of singletons
Call getMutationList: NP_005378
Exception in thread "pool-1-thread-1" java.lang.IncompatibleClassChangeError: Class javax.ws.rs.core.Response$Status does not implement the requested interface javax.ws.rs.core.Response$StatusType
부
@GET
@Path("/mutations/{id}/{from}/{size}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public MutationPosContainer getMutationList(@PathParam("id") String id,
@PathParam("from") Integer from, @PathParam("size") Integer size) {
...
if (posContainer == null)
throw new BadRequestException();
else
return posContainer;
}
응용 프로그램 처리기
public class SnapDbApplication extends Application {
private ServiceFacade facade;
public SnapDbApplication(ServiceFacade facade) {
this.facade = facade;
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(this.facade.getClass());
return s;
}
@Override
public Set<Object> getSingletons() {
Set<Object> s = new HashSet<Object>();
s.add(this.facade);
return s;
}
}
,536,913을 발생합니다
시작 스크립트
#!/usr/bin/env bash
libpath=
for i in $(ls lib/*|grep ".jar"); do
libpath=$(echo "$i:$libpath");
done
java -cp "$(echo $libpath)build/jar/myjar.jar" org.....Startup
예외 63,210
편집 : 클래스 경로 당신은 아마 당신의 클래스 경로에 jsr311의 호환되지 않는 버전이
java -cp
lib/xstream-1.4.2.jar:lib/xmlbeans-2.3.0.jar:lib/xml-resolver-1.2.jar:lib/xalan-2.7.0.jar:
lib/wstx-asl-3.2.9.jar:lib/wsdl4j-1.6.2.jar:lib/woden-impl-dom-1.0M9.jar:lib/woden-impl-commons-1.0M9.jar:
lib/woden-api-1.0M9.jar:lib/tribes-6.0.16.jar:lib/snpxsd.jar:
lib/regexp-1.2.jar:lib/org.springframework.web.struts-sources-3.1.1.RELEASE.jar:
lib/org.springframework.web.struts-3.1.1.RELEASE.jar:
lib/org.springframework.web.servlet-sources-3.1.1.RELEASE.jar:
lib/org.springframework.web.servlet-3.1.1.RELEASE.jar:
...
:lib/jersey-server-1.12.jar:lib/jersey-multipart-1.12.jar:lib/jersey-json-1.12.jar:
lib/jersey-core-1.12.jar:lib/jersey-client-1.12.jar:lib/jaxws-tools-2.1.3.jar:lib/jaxen-1.1.1.jar:lib/jaxb-xjc-2.1.7.jar:
lib/jaxb-impl-2.1.7.jar:lib/jaxb-api-2.1.jar:
lib/jalopy-1.5rc3.jar:lib/httpcore-4.0.jar:
lib/http-20070405.jar:lib/hamcrest-library-1:build/jar/myapp.jar
org.startup.Startup
classpath 문제인 것으로 보입니다. 사용한 클래스 패스를 게시 할 수 있습니까? – andih
클래스 경로를 추가했습니다. –
Eclipse는 분명히 다른 클래스 경로 또는 JVM 버전으로 실행됩니다. – Viruzzo