2012-03-30 13 views
1

umgewandelt werden Beim Versuch, über einen Client auf einen Webservice zuzugreifen, kann der RequestContext nicht abgerufen werden. Ich versuche, die Request wie diese zuzugreifen:clientgen generiert PortType_Stub kann nicht in javax.xml.ws.BindingProvider

QuerySysStatService querySystem=new QuerySysStatService_Impl(wsdl); 
QuerySysStatPortType qport=querySystem.getQuerySysStatPortType(); 
Map<String, Object> rContext =((BindingProvider)qport).getRequestContext(); 

Aber wenn ich ausführen:

((BindingProvider) qport)

ich:

java .lang.ClassCastException: com.demo.client.service.QuerySysStatPortType _Stub kann nicht auf javax.xml.ws.BindingProvider

Irgendwelche Vorschläge gegossen werden/Hilfe sehr geschätzt wird. Danke im Voraus.

Antwort

1

Ich fand, dass:

  • ((javax.xml.ws.BindingProvider) qport) können sicher auf WSDL-Schnittstellen mit JAX-WS (von wsimport) erzeugt aufgerufen werden
  • ((javax.xml.rpc.Stub) qport) können sicher auf JAX-RPC Clients aufgerufen werden (erstellt von clientgen)

In meinem Fall erstellte ich die WSDL-Schnittstellen mit clientgen (JAX-RPC), so können die Eigenschaften wie folgt eingestellt werden:

javax.xml.rpc.Stub stub = (javax.xml.rpc.Stub) qport; 
stub._setProperty("KEY","Value");