powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / web services -> не работает динамический клиент
4 сообщений из 4, страница 1 из 1
web services -> не работает динамический клиент
    #33102696
oracle79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем !!!

Создал динамичиского клиента web службы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
 import  javax.xml.namespace.QName;
 import  javax.xml.rpc.*;
 import  javax.xml.rpc.ServiceFactory;

 public   class  Main {
     private   static  String endpoint =
            "http://localhost:8080/firstWS/firstWS";
     private   static  String qnameService = "FirstWS";
     private   static  String qnamePort = "firstWSSEIPort";
     private   static  String BODY_NAMESPACE_VALUE =
            "urn:firstWS/wsdl"; 
     private   static  String ENCODING_STYLE_PROPERTY =
            "javax.xml.rpc.encodingstyle.namespace.uri";
     private   static  String NS_XSD =
            "http://www.w3.org/2001/XMLSchema";
     private   static  String URI_ENCODING =
            "http://schemas.xmlsoap.org/soap/encoding/";
     public   static   void  main(String[] args) {
         try {
            ServiceFactory factory =
                    ServiceFactory.newInstance();
            Service service =
                    factory.createService( new  QName(qnameService));
            QName port =  new  QName(qnamePort);
            
            Call call = service.createCall(port);
            call.setTargetEndpointAddress(endpoint);
            call.setProperty(Call.SOAPACTION_USE_PROPERTY,  new   Boolean (true));
            call.setProperty(Call.SOAPACTION_URI_PROPERTY,"");
            call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,  URI_ENCODING);
            
            QName QNAME_TYPE_STRING =
                     new  QName(NS_XSD, "string");
            call.setReturnType(QNAME_TYPE_STRING);
            
            call.setOperationName(  new  QName(BODY_NAMESPACE_VALUE, "sayHi"));
            call.addParameter("String_1", QNAME_TYPE_STRING,
                    ParameterMode.IN);
            String[] params = { "Hello" };
            
            String result = (String)call.invoke(params); // <- ошибка возникает здесь
            System.out.println(result);
        }  catch  (Exception e) {
            e.printStackTrace();
        }
    }
Вот wsdl файл web службы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
  <?xml version="1.0" encoding="UTF-8" ?> 
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:firstWS/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="firstWS" targetNamespace="urn:firstWS/wsdl">
  <types /> 
- <message name="firstWSSEI_sayHi">
  <part name="String_1" type="xsd:string" /> 
  </message>
- <message name="firstWSSEI_sayHiResponse">
  <part name="result" type="xsd:string" /> 
  </message>
- <portType name="firstWSSEI">
- <operation name="sayHi" parameterOrder="String_1">
  <input message="tns:firstWSSEI_sayHi" /> 
  <output message="tns:firstWSSEI_sayHiResponse" /> 
  </operation>
  </portType>
- <binding name="firstWSSEIBinding" type="tns:firstWSSEI">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> 
- <operation name="sayHi">
  <soap:operation soapAction="" /> 
- <input>
  <soap:body use="literal" namespace="urn:firstWS/wsdl" /> 
  </input>
- <output>
  <soap:body use="literal" namespace="urn:firstWS/wsdl" /> 
  </output>
  </operation>
  </binding>
- <service name="FirstWS">
- <port name="firstWSSEIPort" binding="tns:firstWSSEIBinding">
  <soap:address location="http://localhost:8080/firstWS/firstWS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" /> 
  </port>
  </service>
  </definitions>
при выполнении программы возникает следующая ошибка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
unexpected encoding style: expected=http://schemas.xmlsoap.org/soap/encoding/, actual=
        at com.sun.xml.rpc.encoding.SOAPDeserializationContext.verifyEncodingStyle(SOAPDeserializationContext.java: 168 )
        at com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java: 175 )
        at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java: 155 )
        at com.sun.xml.rpc.client.dii.CallInvokerImpl._readFirstBodyElement(CallInvokerImpl.java: 285 )
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java: 215 )
        at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java: 79 )
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java: 482 )
private static String URI_ENCODING =
"http://schemas.xmlsoap.org/soap/encoding/";
expected=http://schemas.xmlsoap.org/soap/encoding/
Странная в общем ошибка...
Если задать encoding type так
private static String URI_ENCODING =
"http://schemas.xmlsoap.org/soap/encoding"; (без последнего слеша)
то выскакивает вот такая ошибка
Код: plaintext
1.
2.
3.
operation style: "rpc" not supported
        at com.sun.xml.rpc.client.dii.BasicCall.unsupportedOperationStyleException(BasicCall.java: 556 )
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java: 488 )
может кто-то сталкивался с такой проблемой ?
Помогите пожалуйста!!
5 минут вашего времени избавит меня от многих часов бесполезного втыкания в монитор )))

p.s. : web служба запущена в "rpc" стиле
...
Рейтинг: 0 / 0
web services -> не работает динамический клиент
    #33105564
oracle79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код клиента оказался рабочим!!!
Я попробывал запустить его с использованием библиотек, которые поставляются вместе с ibm web sphera, и он заработал!
А я использую Sun Java System Application Server 8.1.
Подскажите, пожалуйста, какие нужно библиотеки подключать, чтобы заработал клиент ?
Может нодо их отдельно выкачать ?
Ну не может же совершенно одинаковый код в одном случае работать, а в другом не работать!!!
...
Рейтинг: 0 / 0
web services -> не работает динамический клиент
    #33107319
Hello World!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй пропиши в атрибутом в wsdl файле для элемента 'definitions'
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

WBR
...
Рейтинг: 0 / 0
web services -> не работает динамический клиент
    #33108159
oracle79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, wsdl файл для данного типа клиента (dii) вообще не нужен.
Он на то и динамический, так как wsdl описания может не быть.
Здесь важно знать только размещение web службы и семантику вызова.
Я все же склоняюсь к тому, что не хватает каких то библиотек.
Если ошибають, то поправте меня...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / web services -> не работает динамический клиент
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]