2012-02-07 2 views
4

TimeServerBean이라는 간단한 웹 서비스를 만들었습니다. 제대로 작동하고있어 GlassFish 서버가 실행 중이고 브라우저에서 WSDL 파일에 액세스 할 수 있습니다. 이 작업은 로컬 호스트에서 수행됩니다.getMyWSPort에서 NullPointerException이 발생하는 웹 서비스 클라이언트

다음으로 새 프로젝트를 만들고 웹 서비스 클라이언트를 만들고 URL을 WSDL 파일에 제공했습니다. 그런 다음 몇 가지 클래스가 생성되었습니다 (JAX-WS). 내 클라이언트 클래스에 는이 코드를 가지고 :

public class SimpleClient { 

    @WebServiceRef(wsdlLocation = "wsdl url here") 
    static TimeServerBean_Service service; 
    private TimeServerBean bean; 

    public SimpleClient() { 
     bean = service.getTimeServerBeanPort(); 
    } 
    //methods here 
} 

나는 getTimeServerBeanPort를 호출 할 때 내가 널 얻을 수 있지만

. 그 시간 동안 서버가 가동됩니다. 명백한 실수가 있습니까? TimeServerBeanTimeServerBean_Service은 WSDL에서 생성 된 클래스입니다.

+0

메서드가'null'을 반환합니까, 아니면'NullPointerException'을 얻고 있습니까? – millimoose

+0

NullPointerException – Giannis

+0

try/catch 블록이 표시되지 않습니다. 아직 추가하지 않으 셨다면, 하나를 추가하고 예외를 살펴보십시오 (아마 추측 할 것입니다 * 예외가 생길 것입니다). – paulsm4

답변

4

두 가지 제안 :

  1. 확실히 service 자체가 null이라고 가정 할 try/catch 블록

  2. 에 방법을 넣어, 다음 명시 적 service.create()을하는 대신 @WebServiceRef 주석을 사용해보십시오. 여기에 좋은 예 (웹 스피어,하지만 같은 원칙)이다 :

http://www-01.ibm.com/support/docview.wss?uid=swg21264135

+0

간단히 말해서 모든 작업을 수행 한 netbeans의 코드 기능을 삽입해야했습니다. – Giannis

+0

@latusaki - 다행스럽게도 :) 개인적으로 Eclipse를 사용합니다. a) 이클립스는 J2EE뿐만 아니라 Android 제품에도 잘 작동합니다. b) 이클립스는 IBM보다 친숙하며 IBM 제품과 함께 작동합니다. c) 이클립스는 더 큰 "에코 시스템"(제 3 자 애드온)을 가지고있는 경향이 있습니다. IMHO ... – paulsm4

0

@WebServiceRef 주석은 특정 클래스 유형에서 지원됩니다. 예는 JAX-WS 엔드 포인트 구현 클래스, JAX-WS 핸들러 클래스, Enterprise JavaBeans 클래스 및 서블릿 클래스입니다. 이 주석은 @Resource 주석과 동일한 클래스 유형에서 지원됩니다. 지원되는 클래스 유형의 전체 목록은 Java EE (Java Platform, Enterprise Edition) 5 사양을 참조하십시오.

관련 문제