웹 서비스를위한 간단한 Java 클라이언트 코드 - Qname과 관련이 있습니까?

StackOverflow https://stackoverflow.com/questions/201476

  •  03-07-2019
  •  | 
  •  

문제

Tomcat/Axis에서 실행중인 정말 기본적인 웹 서비스를 호출하는 라인에 도달하면 다음과 같은 오류가 발생합니다.

Element or attribute do not match QName production: QName::=(NCName':')?NCName

Qname에 문제가 있습니까?- 그것에 대한 유용한 정보조차 찾을 수 없습니다.

내 클라이언트 코드는 다음과 같습니다.

import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

    public class TestClient {

    public static void main(String [] args)
    {
        try{
            String endpoint = "http://localhost:8080/TestWebService/services/DoesMagic";  

            Service service = new Service();
            Call call = (Call) service.createCall();

            call.setTargetEndpointAddress( new java.net.URL(endpoint) );
            call.setOperationName( new QName("http://testPackage.fc.com/, doBasicStuff") );

            String ret = (String) call.invoke( new Object[] {"some kind of message"} );

            System.out.println(ret);

        }catch(Exception e){
            System.err.println(e.toString());
        }
    }
}

내 웹 serivce 코드는 실제로 기본입니다. 약간의 텍스트로 입력 문자열을 반환하는 간단한 클래스입니다.

public String doBasicStuff(String message)
    {
        return "This is your message: " + message;

    }
도움이 되었습니까?

해결책

예외에서 알 수 있듯이 Qname 생성자를 잘못 호출합니다.

new QName("http://testPackage.fc.com/, doBasicStuff")

부정확하다. 네임 스페이스를 포함하는 두 개의 문자열, 하나는 localName을 통과해야한다고 생각합니다. 문서에는 일반적으로 해당 클래스 사용 방법에 대한 설명이 포함됩니다.

다른 팁

Qname의 오타가 될 수 있습니까? :

new QName("http://testPackage.fc.com/", "doBasicStuff")

대신에:

new QName("http://testPackage.fc.com/, doBasicStuff")

다음 중 하나를 사용해야합니다.

public QName(String localPart)     or
public QName(final String namespaceURI, final String localPart)

그러나 새로운 Qname ( "http://testpackage.fc.com/, dobasicstuff ")는 모두 틀렸다. 두 값이 같은 문자열".., .. "에 있기 때문이다.

문안 인사

New Qname ( "soapenc : string", "dobasicstuff")

당신의 경우에 필요한 metod의 이름을 입력하십시오.call.setOperationName("doBasicStuff");

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top