2010-03-30 4 views
1

JBoss (Eclipse IDE)를 사용하여 CXF (내 wsdl의 pom.xml에서 내 웹 서비스를 자동 생성 함)를 사용하고 있으며 웹에서 웹 서비스에 액세스하는 데 문제가 있습니다. 신청. 나는이 리소스를 찾았습니다 : http://blog.progs.be/?p=92하지만 WSDL_LOCATION = cl.getResource ("my/progam/pack/wsdl/myService.wsdl"); 내 코드에서 제대로 작동합니다.웹 서비스 (CXF) 및 Jboss의 Java 클래스 경로 문제

내 WSDL에이 SRC/메인/WSDL에 위치하고 있으며 .classpath 파일에 다음 줄을 추가 한이 : classpathentry을 종류 = "SRC"경로 나 또한 생성 = "SRC/메인/WSDL"

폴더 내, 프로그램, 팩, wsdl 그리고 내 wsdls 그 위치에 떨어졌다, 그래서 그것은 액세스 할 수 있습니다.

그러나 classloader.getResource 호출은 무엇을하더라도 항상 null을 반환합니다.

getResource ("/wsdl/myService.wsdl")를 지정하면 null이 반환되지 않지만 전체 파일 경로를보고 필요한 부분이 아닌 것으로 보입니다 (URL 부분에 는 JBoss 서버의 디렉토리를 통해 모든 방법을 파일과 WEB-INF의 디렉토리를 포함하는 WSDL.

내 .classpath 파일이 잘못 설정하거나 내가 뭔가를 놓친 거지인가?

을 WSDL의 위치는 항상 해결되지 않은 경우 다음과 같이 ClassCast Exception을 throw합니다.

java.lang.ClassCastException : javax.asache.cxf.jaxws.ServiceImpl .xml.ws.Service. (Service.java:81는)

+0

JRE, CXF 및 JBoss의 버전은 무엇입니까? – skaffman

+0

cxf 2.2.7, jboss 4.2.3, jre 1.5 – JohnC

+0

웹 서비스를 사용하고 있거나 웹 서비스를 사용하고 있습니까? – ScArcher2

답변

1

내 WSDL을 클래스 패스에 논문 파일을 얻기 위해 src/main/wsdl (...)

에있는 한 당신 당신의 POM에 자원으로 디렉토리를 선언해야합니다

<project> 
    ... 
    <build> 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     </resource> 
     <resource> 
     <directory>src/main/wsdl</directory> 
     </resource> 
    </resources> 
    ... 
    </build> 
</project> 

그리고 지금 당신의 WSDL에이 classes 디렉토리 아래에 끝나야한다

을.

+0

webapp는 클라이언트입니다. 나는 절대 경로 대신 클래스 패스를 사용하려고 노력 중이다. 단지 작동하지 않는다. – JohnC

+0

@JohnC 내 업데이트를 참조하십시오. pom.xml에이 파일이 없으면 다시 시도하십시오. –

+0

이 덕분에 지금 내 클래스 로더 문제가 해결되었습니다. – JohnC