JAX-WS Parameter Required?

ZeroQool

Mitglied
Hallo, habe einen JAX-WS und möchte das der Inputparameter "pToken" vom Typ "Token" Required ist, aber keine Ahnung wie.

Folgender Code:

Java:
@WebService(name = "UserManagerService", targetNamespace = "http://service.demo.de")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED, use = SOAPBinding.Use.LITERAL)
public interface UserManagerService
{
@WebMethod(operationName = "Confirm")
	public Boolean ConfirmOptIn(@WebParam(name = "WebServiceAuthentication", header = true) AuthData pAuthData, @WebParam(name = "TokenID") Token pToken) throws Exception;

}

Java:
@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
public class Token
{
	/**
	 * Property
	 */
	@XmlElement(required = true)
	protected String pToken;

	/**
	 * Constructor
	 */

	/**
	 * Getter/Setter
	 */
	public String getPToken()
	{
		return pToken;
	}

	public void setPToken(String token)
	{
		pToken = token;
	}

}

Das ganze sieht unter SOAP UI so aus:
[XML]
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.demo.de">
<soapenv:Header>
<ser:WebServiceAuthentication>
<password>?</password>
<username>?</username>
</ser:WebServiceAuthentication>
</soapenv:Header>
<soapenv:Body>
<ser:ConfirmOptIn>
<!--Optional:-->
<Token>
<PToken>?</PToken>
</Token>
</ser:ConfirmOptIn>
</soapenv:Body>
</soapenv:Envelope>[/XML]

Rein logisch kann ich mir erklären warum über <Token>
steht, aber ich weiss nicht wie ich das umgehen soll. Wenn ich in der Klasse "Token" testweise
Java:
required = false
schreibe sieht das so aus:
[XML]
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.demo.de">
<soapenv:Header>
<ser:WebServiceAuthentication>
<password>?</password>
<username>?</username>
</ser:WebServiceAuthentication>
</soapenv:Header>
<soapenv:Body>
<ser:ConfirmOptIn>
<!--Optional:-->
<Token>
<!--Optional:-->
<PToken>?</PToken>
</Token>
</ser:ConfirmOptIn>
</soapenv:Body>
</soapenv:Envelope>[/XML]

danke
 
Zuletzt bearbeitet:
G

gman

Gast
Hi,

in der "ConfirmOptIn"-Methode ist der Parameter ja vorhanden, wenn du jetzt mit "wsimport"
einen Client erzeugts wird auch da der Parameter in der Methode vorhanden sein. Das jemand
als Parameter einfach "null" übergibt wirst du wohl kaum verhindern können bzw. musst du im
Webservice abfangen. Insofern verstehe ich nicht so ganz was du jetzt noch "required" machen
willst.
 

ZeroQool

Mitglied
Hi,

in der "ConfirmOptIn"-Methode ist der Parameter ja vorhanden, wenn du jetzt mit "wsimport"
einen Client erzeugts wird auch da der Parameter in der Methode vorhanden sein. Das jemand
als Parameter einfach "null" übergibt wirst du wohl kaum verhindern können bzw. musst du im
Webservice abfangen. Insofern verstehe ich nicht so ganz was du jetzt noch "required" machen
willst.

Den Webservce sollen später mal andere Dienstleister konsumieren und deshalb möchte ich gerne, dass der Entwickler direkt beim durchschauen der WSDL (minoccur=1) sieht, das ist ein Pflichtfeld.
 

Ähnliche Java Themen


Oben