Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 10.09.08 12:18
Оценка:
делаю так


public String test() {
        Service srvcModel = new  
        ObjectServiceFactory().create(IWs_common.class);  
        XFireProxyFactory factory =   
           new XFireProxyFactory(XFireFactory.newInstance().getXFire());  
        String helloWorldURL = "...";  
        try {  
            IWs_common srvc = (IWs_common)factory.create(srvcModel, helloWorldURL);  
           String result = srvc.getVersion();  
           return result;  
        } catch (Exception e) {  
           e.printStackTrace();  
        } 
        
        return "";
}



превосходно работает, НО я взял с веб сервиса интерфейс IWs_common.java и подключил к проджекту. А у меня не будет этого файла, будет только wsdl файл. Через программу wsdl2java я перегнал в код джавы получил два файла
...CallbackHandler.java
...Stub.java

Подскажите пожалуйста, как теперь на их основе вызвать getVersion()?
Re: Web Service Client, wsdl, XFire
От: Falsehood  
Дата: 10.09.08 15:13
Оценка:
Здравствуйте, Awejk, Вы писали:


A>превосходно работает, НО я взял с веб сервиса интерфейс IWs_common.java и подключил к проджекту. А у меня не будет этого файла, будет только wsdl файл. Через программу wsdl2java я перегнал в код джавы получил два файла

A>...CallbackHandler.java
A>...Stub.java

A>Подскажите пожалуйста, как теперь на их основе вызвать getVersion()?


...Stub.java — это обертка для обращения к сервису. там должны быть все необходимый методы. поищи.
Re[2]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 10.09.08 15:44
Оценка:
F>...Stub.java — это обертка для обращения к сервису. там должны быть все необходимый методы. поищи.

да, это обвёртка я уже так и понял. В нете нашёл только пример с интерфейсом, а пример с этим ...stub файлов что-то не могу найти, может у кого есть не больший пример. Что бы знать от чего опираться, а то пока понятии не имею как это всё записать.
Re: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 11.09.08 10:07
Оценка:
Хоть кто нибудь подскажите.

Я пробывал так делать:

nameFileStub stub = new nameFileStub("url...");
GetVersion param = new GetVersion();
stub.getVersion(param);

в итоге получаю эксепшен

java.lang.NoSuchMethodError: javax.xml.stream.XMLOutputFactory.newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLOutputFactory;
    org.apache.axiom.om.util.StAXUtils.getXMLOutputFactory(StAXUtils.java:97)
    org.apache.axiom.om.util.StAXUtils.createXMLStreamWriter(StAXUtils.java:123)
    org.apache.axiom.om.impl.MTOMXMLStreamWriter.<init>(MTOMXMLStreamWriter.java:74)
    org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:410)
    org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.handleOMOutput(SOAPOverHTTPSender.java:190)
    org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.writeRequest(SOAPOverHTTPSender.java:232)
    org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:495)
    org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1973)
    org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
    org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
    org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
    org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
    org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
    org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:534)
    org.apache.axis2.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:119)
    org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:334)
    org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:205)
    org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:670)
    org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:365)
    org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:295)
    ee.akriform.webservices.dataaccess_wsdl.Unicus_ws_commonStub.getVersion(Unicus_ws_commonStub.java:391)
    ee.akriform.webservices.dataaccess_wsdl.TestInvoke.test2(TestInvoke.java:30)
    ee.akriform.webservices.dataaccess_wsdl.TestSrv.doGet(TestSrv.java:53)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


последняя версия axis-а. Что делать хоть намекните
Re[2]: Web Service Client, wsdl, XFire
От: Blazkowicz Россия  
Дата: 11.09.08 10:15
Оценка:
Здравствуйте, Awejk, Вы писали:

A>в итоге получаю эксепшен


A>
A>java.lang.NoSuchMethodError: javax.xml.stream.XMLOutputFactory.newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLOutputFactory;
A>    org.apache.axiom.om.util.StAXUtils.getXMLOutputFactory(StAXUtils.java:97)
A>


Axiom, который использует Axis 2, требует другую версию StAX API.
Под Geronimo, что ли пускаете? Настоятельно рекомендую отказатся от использования евойного Axis 2 вообще. Мы совсем недавно напоролись на аж две критичные для нас баги.
Делается это путем фильтрации package в geronimo-xml и подсовыванием своих либ в приложение. Таких как реализация SAAJ.
Re[3]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 11.09.08 17:59
Оценка:
B>Axiom, который использует Axis 2, требует другую версию StAX API.

а где её взять?
Re[4]: Web Service Client, wsdl, XFire
От: Blazkowicz Россия  
Дата: 11.09.08 18:18
Оценка:
Здравствуйте, Awejk, Вы писали:

B>>Axiom, который использует Axis 2, требует другую версию StAX API.

A>а где её взять?

Возможно что проблема в Java 6. Сравни разные версии StAX. Погугли по тексту ошибки.
Re[5]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 12.09.08 05:21
Оценка:
B>Возможно что проблема в Java 6. Сравни разные версии StAX. Погугли по тексту ошибки.

да да, это я тоже видел, писали что эту проблему отложили на джаву 7. Вот и пришёл сюда думал может чего-то не так прочитал. Теперь понятно
Re[5]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 12.09.08 05:26
Оценка:
может можно используя другие средства как-то обратиться к сервису используя этот stub файл
Re[6]: Web Service Client, wsdl, XFire
От: Blazkowicz Россия  
Дата: 12.09.08 09:00
Оценка:
Здравствуйте, Awejk, Вы писали:

A>может можно используя другие средства как-то обратиться к сервису используя этот stub файл

Вариантов куча:
1) Использовать Java 5
2) Использовать другой сервер приложений
3) Прописать StAX API нужнойы версии в bootstrap classpath, чтобы он грузился до классов из JRE
4) Прописать в geronimo-web.xml фильтр на пакеты, положить безглючные реализации jax-ws и saaj в своё приложение.
Re[7]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 12.09.08 10:27
Оценка:
A>>может можно используя другие средства как-то обратиться к сервису используя этот stub файл
B>Вариантов куча:
B>1) Использовать Java 5
B>2) Использовать другой сервер приложений
B>3) Прописать StAX API нужнойы версии в bootstrap classpath, чтобы он грузился до классов из JRE
B>4) Прописать в geronimo-web.xml фильтр на пакеты, положить безглючные реализации jax-ws и saaj в своё приложение.

мы ещё сидим на джаве 1.4
но по сути так и надо делать

nameFileStub stub = new nameFileStub("url...");
GetVersion param = new GetVersion();
stub.getVersion(param);


а проблема уже кроется в используемых средствах?
Re[8]: Web Service Client, wsdl, XFire
От: Blazkowicz Россия  
Дата: 12.09.08 10:38
Оценка:
Здравствуйте, Awejk, Вы писали:

A>мы ещё сидим на джаве 1.4

A>но по сути так и надо делать

Выходит проблема не в том StAX, который в JRE, а в том что у вас на сервере 2 библиотеки StAX API разных версий. Давай список jar файлов приложения сюда

A>
A>nameFileStub stub = new nameFileStub("url...");
A>

Не уверен. Стабы вроде же через фабрику надо инстанциировать. Хотя я JAX-WS на вскидку не помню.

A>а проблема уже кроется в используемых средствах?

Причина исключения показаного выше в библиотеках. Эдакое проявление jar hell.
Re[9]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 15.09.08 06:55
Оценка:
это мои jar файлы(положил всё что было в папке lib от axis):

activation-1.1.jar
annogen-0.1.0.jar
axiom-api-1.2.jar
axiom-dom-1.2.jar
axiom-impl-1.2.jar
axis2-adb-1.1.jar
axis2-adb-codegen-1.1.jar
axis2-codegen-1.1.jar
axis2-java2wsdl-1.1.jar
axis2-jibx-1.1.jar
axis2-kernel-1.1.jar
axis2-saaj-1.1.jar
axis2-soapmonitor-1.1.jar
axis2-spring-1.1.jar
axis2-tools-1.1.jar
axis2-xmlbeans-1.1.jar
backport-util-concurrent-2.2.jar
commons-codec-1.3.jar
commons-fileupload-1.1.1.jar
commons-httpclient-3.0.1.jar
commons-io-1.2.jar
commons-logging-1.1.jar
geronimo-spec-jms-1.1-rc4.jar
jakarta-httpcore-4.0-alpha2.jar
jaxen-1.1-beta-10.jar
jibx-bind-1.1.2.jar
jibx-run-1.1.2.jar
mail-1.4.jar
neethi-2.0.jar
servletapi-2.3.jar
stax-api-1.0.1.jar
woden-1.0.0M6.jar
wsdl4j-1.6.1.jar
wstx-asl-3.0.1.jar
xalan-2.7.0.jar
xbean-2.2.0.jar
xercesImpl-2.8.1.jar
xml-apis-1.3.03.jar
XmlSchema-1.2.jar


а на сервере:

dom.jar
jaxen-full.jar
jaxp-api.jar
jdbc2_0-stdext.jar
jdom.jar
jstl.jar
sax.jar
saxpath.jar
standard.jar
struts.jar
xalan.jar
xercesImpl.jar


>Хотя я JAX-WS на вскидку не помню.


а есть где подсмотреть?
Re[10]: Web Service Client, wsdl, XFire
От: Blazkowicz Россия  
Дата: 15.09.08 10:29
Оценка:
Здравствуйте, Awejk, Вы писали:

A>это мои jar файлы(положил всё что было в папке lib от axis):


Так я что-то сосвем потерялся. В subj у тебя написано про клиент. Хотя из исключения видно что оно на серверере. Вопрос.
Сервер Geronimo или WebSphere CE? Правильно?
Re[11]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 15.09.08 11:30
Оценка:
B>Сервер Geronimo или WebSphere CE? Правильно?

oracle internet application server 10g rel 2

B>Хотя из исключения видно что оно на серверере.

а мне что-то не видно, под каким углом надо смотреть?
Re[12]: Web Service Client, wsdl, XFire
От: Blazkowicz Россия  
Дата: 15.09.08 11:42
Оценка:
Здравствуйте, Awejk, Вы писали:

B>>Сервер Geronimo или WebSphere CE? Правильно?

A>oracle internet application server 10g rel 2
Надо в его либах посмотреть на наличие stax-api другой версии.


B>>Хотя из исключения видно что оно на серверере.

A>а мне что-то не видно, под каким углом надо смотреть?


javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


То есть рантайм происходит на сервере а не в standalone?
Re[13]: Web Service Client, wsdl, XFire
От: Awejk Украина  
Дата: 16.09.08 06:26
Оценка:
B>Надо в его либах посмотреть на наличие stax-api другой версии.
посмотрел его либы что-то не нашёл вообще ни одного файла связанным с именем stax

B>То есть рантайм происходит на сервере а не в standalone?


Я у себя запускаю веб сервис и конекчюсь со своего же компа к этому веб сервису
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.