[WebService 학습 과정 기록]고양 이 를 본 떠 호 랑 이 를 그리다---운행 예시(一)
3152 단어 javaWeb 지식 총화
이 블 로 그 는 무미건조 한 말 이 적 고 실행 가능 한 코드 를 직접 사용 하여 먼저 해 보 겠 습 니 다.제 습관 적 인 학습 방식 은'그 이 유 를 알 고 그 이 유 를 알 겠 습 니 다'입 니 다.먼저 그 원 리 를 추적 할 것 입 니 다.
실례 를 모방 하여 문제 기록 을 만나다
1,JDK 설치 및 검증 JDK 버 전 1.6u 17 이상,나 는:자바 version"1.7.0맞다
2,eclipse 구축 자바 프로젝트,프로젝트 이름 WebServiceTest
Hello 코드 는 다음 과 같 습 니 다:
package com.rwq.jdkwebservice;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Hello {
public String sayHello(String name) {
return "Hello " + name;
}
public static void main(String[] args){
Endpoint.publish("http://localhost:8080/com.rwq.jdkwebservice.Hello", new Hello());
System.out.println("Success");
}
}
3.Hello 를 실행 하고 콘 솔 에서 Success 를 출력 하 는 것 이 성공 입 니 다.
메모:실행 중 Hello 는 실행 상태 여야 합 니 다.닫 을 수 없습니다.
4.브 라 우 저 입력 열기:http://localhost:8080/com.rwq.jdkwebservice.Hello 다음 웹 서비스 정 보 를 볼 수 있 습 니 다.
5.브 라 우 저 입력 열기:http://localhost:8080/com.rwq.jdkwebservice.Hello?wsdlWSDL 메시지 가 보 입 니 다.
6.명령 행 을 열 고 WebServiceTest 프로젝트 src 가 있 는 경로 로 이동 합 니 다.실행:wsimport-p com.rwq.client-keephttp://localhost:8080/com.rwq.jdkwebservice.Hello?wsdl [wsimport-p[패키지 이름]-keep[게 시 된 서비스 주소?클 라 이언 트 코드 생 성
메모:현재 Hello 가 실행 중 입 니 다.닫 을 수 없습니다.닫 으 면 다음 과 같은 오류 가 발생 합 니 다.
[ERROR] Connection refused: connect
Failed to read the WSDL document: http://localhost:8080/com.rwq.jdkwebservice.He
llo?wsdl, because 1) could not find the document; /2) the document could not be
read; 3) the root element of the document is not .
[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s):
At least one WSDL with at least one service definition needs to be provided.
Failed to parse the WSDL.
7.eclipse 리 셋 WebServiceTest 프로젝트
클 라 이언 트 코드 자동 생 성
8.예제 프로그램 을 써 서 호출 합 니 다.
import com.rwq.client.HelloService;
import com.rwq.client.Hello;
public class HelloClient {
/**
* @param args
*/
public static void main(String[] args) {
Hello hello = new HelloService().getHelloPort();
String s = hello.sayHello("why");
System.out.println(s);
s = hello.sayHello("RWQ");
System.out.println(s);
}
}
실행 결과
Hello why Hello RWQ
메모:현재 Hello 가 실행 중 입 니 다.닫 을 수 없습니다.닫 으 면 다음 과 같은 오류 가 발생 합 니 다.
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:992)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:928)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:846)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
at java.net.URL.openStream(URL.java:1035)
이로써 첫 번 째 자바 의 웹 서비스 예제 가 올 바 르 게 실행 되 었 습 니 다.
마음속 의문:
1.만약 나의 다른 항목 이 이 interface 를 호출 하고 싶다 면 어떻게 합 니까?
2.다른 주소 에서 이 인 터 페 이 스 를 호출 하려 면 어떻게 합 니까?