Sun GlassFish Enterprise Server 2.1 릴리스 노트

웹 서비스

이 절에서는 웹 컨테이너와 관련된 알려진 문제점과 해결 방법을 설명합니다.

Ant 작업 wsimportNoClassDefFoundError를 일으키며 Java EE SDK b33d에서 실패(JDK 1.6 사용)(6527842)

설명

Java EE SDK b33d가 포함된 JDK 1.6으로 JAX-WS 테스트를 실행할 경우 문제가 생길 수 있습니다. 테스트는 다음 메시지와 함께 즉시 중단됩니다.


[wsimport] Exception in thread "main" java.lang.NoClassDefFoundError: \
com/sun/tools/ws/WsImport

이 오류는 webservices-tools.jarcom/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class com/sun/tools/ws/ant/WsImport2.class가 포함되어 있지 않은 경우에도 발생합니다. 또한 같은 테스트 작업 공간이 1.5.0-10 JDK를 사용했을 땐 문제 없이 작동하기도 합니다.

해결 방법

JAX-WS 테스트를 실행하기 전에 webservices-api.jar$JAVA_HOME/jre/lib/endorsed로 복사합니다.

publish-to-registry 명령이 IFR EE 빌드에서 실패(6602046)

설명

JAXR에서는 SAAJ를 사용하여 SOAP 메시지를 레지스트리에 보냅니다. IFR이 아닌 경우 SAAJ impl 클래스는 lib/webservices-rt.jar 아래에 있습니다. IFR 사례에서 SAAJ 클래스는 아직 lib/webservices-rt.jar 아래에 있습니다. 또한 saaj-impl.jar/usr/share/lib 디렉토리에 있습니다. 이 jar 파일은 Enterprise Server와 webservices-rt.jar에 있는 우선적인 파일에서 선택됩니다. 이 jar 파일에는 SOAP 메시지를 웹 서비스 레지스트리에 보내는 데 필요한 보안 권한이 없습니다. /usr/share/lib 디렉토리의 jar에 권한을 부여하거나 /usr/share/lib jar에 종속되지 않으려면 패키지를 수정해야 합니다.

해결 방법

다음을 server.policy 파일에 추가합니다,


grant codeBase "file:/usr/share/lib/saaj-impl.jar" {
   permission java.security.AllPermission;
};

wscompile이 JDK6 u4 b3에서 "package javax.xml.rpc does not exist"라는 메시지와 함께 실패함(6638567)

설명

JDK 6 Update 4에 대해 wscompile ant 작업이 실패합니다. 각 JAX-RPC API 클래스의 경우 다음 오류 메시지가 표시됩니다.


package package-name does not exist

해결 방법

wscompile ant 작업을 실행하기 전에 클래스 경로에 j2ee.jar아니라 javaee.jar이 지정되어 있는지 확인합니다.