Java에서 웹 서비스를 구현하는 방법을 배우고 있습니다. O'Reilly의 저서 "Learning Java"의 예제에 따라 cdyne.com에서 날씨 서비스 용 WSDL 파일 (http://bit.ly/13moiTh 참조)을 다운로드하고 wsimport 도구를 사용하여 일련의 클래스를 생성했습니다.Java 웹 서비스 클라이언트가 cdyne.com에서 기상 서비스에 액세스 할 수 없음
첫 번째 문제점은 JAR 파일을 생성하여 Eclipse 프로젝트에서 참조 할 때 클래스가 인식되지 않는다는 것입니다. wsimport -keep을 사용하여 모든 소스 파일을 개별적으로 프로젝트에 복사하여 빌드해야했습니다.
다음은 서비스를 사용할 수 있는지 확인하기 위해 책의 코드를 기반으로 간단한 HTTP POST 클라이언트를 구성했습니다. 해당 코드로 getCityWeatherByZIP 서비스에 성공적으로 액세스 할 수 있었기 때문에 연결 또는 인증 문제가 없었습니다.
마지막으로, 자동으로 생성 된 웹 서비스 클라이언트 코드를 사용하여 getCityWeatherByZIP 및 getCityForecastByZIP 서비스에 액세스하려고했습니다. 모두 자동으로() 메소드가 false를 반환하고 모든 응답 필드가 null이었다 isSuccess 즉, 실패는 :
코드를 단계별로에서Weather service = new Weather();
WeatherSoap weatherSoap = service.getWeatherSoap();
WeatherReturn weather = weatherSoap.getCityWeatherByZIP(ZIP);
if (weather.isSuccess()) {
System.out.format("%s, %s : %s : Temperature: %s, Wind: %s\n",
weather.getCity(), weather.getState(), weather.getDescription(),
weather.getTemperature(), weather.getWind());
}
else {
System.out.println("Failed to obtain weather");
}
는 getCityWeatherByZIP()에서 나는 다음과 같은 경우는, NoSuchMethodException을 발견 : com.sun.xml.internal 를 .ws.api.message.Packet.setHeaderList (com.sun.xml.internal.ws.api.message.HeaderList) "
이 예외는 (Eclipse의 디버그 퍼스펙티브에서) " SEIStub.invoke (객체, 메서드, 객체 []) 행 : 사용할 수 없음 "
분명히 Packet.setHe 케플러 서비스 릴리스 1, ID를 구축 : 나는 최신 JDK 1.7와 이클립스 버전을 사용하고 https://jax-ws.java.net/nonav/jax-ws-20-fcs/arch/com/sun/xml/ws/api/message/Packet.html
: aderList은 (HeaderList) 방법은 아닌 내부 클래스의 문서에 의해 뒷받침되는, 존재하지 않는 20130919-을 0819.
이 문제를 해결하는 방법을 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다.
문제점 : Eclipse- 프로젝트에서 package-info.java 파일이 누락되었습니다. 이 지침에 따라 패키지에 추가하면 모든 것이 작동하기 시작합니다. http://stackoverflow.com/questions/8405336/how-do-i-use-or-edit-package-info-java – user1408140