2014-11-05 1 views
0

질문이 2 개 있습니다 축 2 샘플을 실행하려고합니다. 명령어 파일의 마지막 부분에서, 거기는 말한다이 줄을, 나는이 분야의 전문가가 아니다, (우분투) 터미널에서 실행되어야합니다축 샘플 주소록 예외

java -Djava.ext.dirs=%AXIS2_HOME%\lib;%JAVA_HOME%\jre\lib\ext -cp target/classes org.apache.axis2.jaxws.addressbook.AddressBookClient.class 

작동하지 않습니다, 그리고 내가 아니다 우분투 명령에 익숙하다. 나는이 우분투 명령 내가 오류, "잘못된 작업이"아니라고 느낄

  1. 누군가가 우분투 명령이 점을 변환 할 수 있습니까? 그것이 작동하지 않았기 때문에, 내가 사용 항아리를 구축

mvn clean install 

가 그럼 난 축 2에서, 저장소에서 servicejars 디렉토리에 jar 파일을 복사

그런 축 서버가 말한다 jar에는 WebServices 주석이 없습니다.

"jar : file : /home/dodan/Programs/axis2-1.6.0/repository/servicejars/jaxws-addressbook-1에 @WebService 주석이없는 서비스 구현이 없습니다. 6.0-client.jar. 서비스 배포에 실패했습니다. "

그래서 내가 웹 서비스 주석 2. 수 없는지 그 주석 (너무 가져 오기)

그러나 축 2의 여전히 서버 SYS를 가지고 있지 않은 원래의 자바 파일에 추가 누군가가 내가 놓친 여부를 말할? 여기

난 당신이 환경 변수에 대한 윈도우 구문을 사용하고

import javax.xml.namespace.QName; 
import javax.xml.ws.BindingProvider; 
import javax.xml.ws.Dispatch; 
import javax.xml.ws.Service; 
import javax.jws.WebService; 
import java.util.Map; 

/** 
* Simple JAX-WS Dispatch client for the address book service implementation. 
*/ 
@WebService 
public class AddressBookClient { 
    private static String NAMESPACE = "http://addressbook.jaxws.axis2.apache.org"; 
    private static QName QNAME_SERVICE = new QName(NAMESPACE, "service"); 
    private static QName QNAME_PORT = new QName(NAMESPACE, "port"); 
    private static String ENDPOINT_URL = "http://localhost:8080/axis2/services/AddressBookImplService.AddressBookImplPort"; 

private static String ADD_ENTRY_BODY_CONTENTS = 
    "<ns1:addEntry xmlns:ns1=\"http://addressbook.jaxws.axis2.apache.org\">" + 
     "<ns1:firstName xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myFirstName</ns1:firstName>" + 
     "<ns1:lastName xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myLastName</ns1:lastName>" + 
     "<ns1:phone xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myPhone</ns1:phone>" + 
     "<ns1:street xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myStreet</ns1:street>" + 
     "<ns1:city xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myCity</ns1:city>" + 
     "<ns1:state xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myState</ns1:state>" + 
    "</ns1:addEntry>"; 

private static String FIND_BODY_CONTENTS = 
    "<ns1:findByLastName xmlns:ns1=\"http://addressbook.jaxws.axis2.apache.org\">" + 
     "<ns1:lastName xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myLastName</ns1:lastName>" +   
    "</ns1:findByLastName>"; 

public static void main(String[] args) { 
    try { 
     System.out.println("AddressBookClient ..."); 

     Service svc = Service.create(QNAME_SERVICE); 
     svc.addPort(QNAME_PORT, null, ENDPOINT_URL); 

     // A Dispatch<String> client sends the request and receives the response as 
     // Strings. Since it is PAYLOAD mode, the client will provide the SOAP body to be 
     // sent; the SOAP envelope and any required SOAP headers will be added by JAX-WS. 
     Dispatch<String> dispatch = svc.createDispatch(QNAME_PORT, 
       String.class, Service.Mode.PAYLOAD); 

     // Invoke the Dispatch 
     System.out.println(">> Invoking sync Dispatch for AddEntry"); 
     String response = dispatch.invoke(ADD_ENTRY_BODY_CONTENTS); 
     System.out.println("Add Entry response: " + response); 

     System.out.println(">> Invoking Dispatch for findByLastName"); 
     String response2 = dispatch.invoke(FIND_BODY_CONTENTS); 
     System.out.println("Find response: " + response2); 
    } catch (Exception e) { 
     System.out.println("Caught exception: " + e); 
     e.printStackTrace(); 
    } 
} 
} 

답변

1

을 변경 자바 파일입니다.

,536,

%AXIS_HOME% 대신 $AXIS_HOME을 사용하십시오.

즉, 요즘에는 웹 서비스에 대해 배우기 위해 Axis 버전이 필요하지 않습니다. JAX-WS 구현은 JDK for Java 6 이상에 존재합니다.

많은 튜토리얼이 있습니다.

+0

감사합니다.하지만 축을 배워야합니다. btw 전체 줄을 Linux로 변환 할 수 있습니까? –