RE: could not find deserializer(DataHandler)
Chuさん、 木村です。 ぱっと見た感じでは、以前のWSDD設定の問題と直接関係なさそうです。 まず、エラー種別は「java.io.IOException」ですし、詳細メッセージは "End of stream encountered before final boundary marker."となってい ます。これは、通信が完了する前にStreamが終了してしまった、という事 を示しています。 転送データサイズを示す「Content-length」というヘッダに指定された 値と、実際に受信したデータサイズが異なると発生します。英語になって しまいますが、下記の情報を参照ください。 # Chuさんは、英語でもぜんぜん問題ないと思いますから... http://www.newsarch.com/archive/mailinglist/axis/user/msg05607.html 現在、ソースを読んで原因分析をしている時間を取れないので、上記の 情報から原因・対策を探っていただければと思います。 よろしくお願いします。 --- Toshi <[EMAIL PROTECTED]> On Fri, 4 Mar 2005, chu wrote: 木村 様 いつもお世話になっております。 前の続きとも思われますが、 何故か理由は分からないですが、URN:FileDownloadService にしてやってみたらうまくいきました。 ... 原因は環境なのか、自分が悪いなのかよく分かりませんが、とりあえず、 urnで解決しました。 やはり本当の解決ではないみたいです。 今回はattachmentsを使って、アップロード用にURN:SendFileServiceを作成 したのですが、やはり同じくDataHandlerの引受渡しのところで引っかかってい ます。 -- サービスのところで public class SendFileService { public DataHandler echo( DataHandler dh) { .. } } -- クライントのほうは”SOAP通信”で呼んでおります。 boolean echoUsingSAAJ(String address, String port, String filename) throws Exception { String endPointURLString = "http://"+address+":"; +port + "/axis/services/urn:SendFileService"; SOAPConnectionFactory soapConnectionFactory = javax.xml.soap.SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope requestEnvelope = soapPart.getEnvelope(); SOAPBody body = requestEnvelope.getBody(); SOAPBodyElement operation = body.addBodyElement(requestEnvelope. createName("echo")); Vector dataHandlersToAdd = new Vector(); dataHandlersToAdd.add(new DataHandler(new FileDataSource(new File(filename; if (dataHandlersToAdd != null) { ListIterator dataHandlerIterator = dataHandlersToAdd.listIterator(); while (dataHandlerIterator.hasNext()) { DataHandler dataHandler = (DataHandler)dataHandlerIterator.next(); javax.xml.soap.SOAPElement element = operation.addChildElement(requestEnvelope.createName("source")); javax.xml.soap.AttachmentPart attachment = soapMessage.createAttachmentPart(dataHandler); soapMessage.addAttachmentPart(attachment); element.addAttribute(requestEnvelope.createName("href"), "cid:"; + attachment.getContentId()); } } System.out.println("2: getDataHandler"); Iterator iterator = null; DataHandler rdh =null; int count = 1; // org is 3 for(int i = 0; i < count; i++){ System.out.println("== loop#" + i ); try { javax.xml.soap.SOAPMessage returnedSOAPMessage = soapConnection.call(soapMessage, endPointURLString); iterator = returnedSOAPMessage.getAttachments(); if (!iterator.hasNext()) { //The wrong type of object that what was expected. System.out.println("Received problem response from server"); throw new AxisFault("", "Received problem response from server", null, null); } //Still here, so far so good. //Now lets brute force compare the source attachment // to the one we received. rdh = (DataHandler) ((AttachmentPart)iterator.next()).getDataHandler(); break; } catch (Exception e) { } } -- deploy.wsddは下記のようにoperationも入れております。 http://xml.apache.org/axis/wsdd/"; xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"; xmlns:ns1="urn:SendFileService" > serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory " encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; /> -- 結果: Tomcatの画面では - AxisFault: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.RuntimeException: java.io.IOException: End of stream enc ountered before final boundary marker.AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.io.IOException: End of stream encountered before final bounda ry marker. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.io.IOException: End of stre am encountered before final boundary marker.
RE: could not find deserializer(DataHandler)
木村 様 いつもお世話になっております。 前の続きとも思われますが、 > > 何故か理由は分からないですが、URN:FileDownloadService > にしてやってみたらうまくいきました。 > ... > 原因は環境なのか、自分が悪いなのかよく分かりませんが、とりあえず、 > urnで解決しました。 > やはり本当の解決ではないみたいです。 今回はattachmentsを使って、アップロード用にURN:SendFileServiceを作成 したのですが、やはり同じくDataHandlerの引受渡しのところで引っかかってい ます。 -- サービスのところで public class SendFileService { public DataHandler echo( DataHandler dh) { .. } } -- クライントのほうは”SOAP通信”で呼んでおります。 boolean echoUsingSAAJ(String address, String port, String filename) throws Exception { String endPointURLString = "http://"+address+":"; +port + "/axis/services/urn:SendFileService"; SOAPConnectionFactory soapConnectionFactory = javax.xml.soap.SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope requestEnvelope = soapPart.getEnvelope(); SOAPBody body = requestEnvelope.getBody(); SOAPBodyElement operation = body.addBodyElement(requestEnvelope. createName("echo")); Vector dataHandlersToAdd = new Vector(); dataHandlersToAdd.add(new DataHandler(new FileDataSource(new File(filename; if (dataHandlersToAdd != null) { ListIterator dataHandlerIterator = dataHandlersToAdd.listIterator(); while (dataHandlerIterator.hasNext()) { DataHandler dataHandler = (DataHandler)dataHandlerIterator.next(); javax.xml.soap.SOAPElement element = operation.addChildElement(requestEnvelope.createName("source")); javax.xml.soap.AttachmentPart attachment = soapMessage.createAttachmentPart(dataHandler); soapMessage.addAttachmentPart(attachment); element.addAttribute(requestEnvelope.createName("href"), "cid:"; + attachment.getContentId()); } } System.out.println("2: getDataHandler"); Iterator iterator = null; DataHandler rdh =null; int count = 1; // org is 3 for(int i = 0; i < count; i++){ System.out.println("== loop#" + i ); try { javax.xml.soap.SOAPMessage returnedSOAPMessage = soapConnection.call(soapMessage, endPointURLString); iterator = returnedSOAPMessage.getAttachments(); if (!iterator.hasNext()) { //The wrong type of object that what was expected. System.out.println("Received problem response from server"); throw new AxisFault("", "Received problem response from server", null, null); } //Still here, so far so good. //Now lets brute force compare the source attachment // to the one we received. rdh = (DataHandler) ((AttachmentPart)iterator.next()).getDataHandler(); break; } catch (Exception e) { } } -- deploy.wsddは下記のようにoperationも入れております。 http://xml.apache.org/axis/wsdd/"; xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"; xmlns:ns1="urn:SendFileService" > http://schemas.xmlsoap.org/soap/encoding/"; /> -- 結果: Tomcatの画面では - AxisFault: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.RuntimeException: java.io.IOException: End of stream enc ountered before final boundary marker.AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.io.IOException: End of stream encountered before final bounda ry marker. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.io.IOException: End of stre am encountered before final boundary marker. at org.apache.axis.attachments.BoundaryDelimitedStream.read(BoundaryDeli mitedStream.java:308) at org.apache.axis.attachments.BoundaryDelimitedStream.read(BoundaryDeli mitedStream.java:358) at org.apache.axis.attachments.ManagedMemoryDataSource.<init& gt;(ManagedMemoryDataSource.java:146) . になってしまいました。logsにはなにも取れてません。ファイルすら存在しませ ん。 PS: 1.現に、URN:FileDownloadServiceは正しく動いております。URN: SendFileService も同じようにやっているつもりですが、。。。 2. public DataHandler echo( DataHandler dh) で DataHandlerを引き渡すときにとreturnにそれぞれエラーになる場合があっ て不安定 です
RE: could not find deserializer
木村 様 いつもお世話になっております。 何故か理由は分からないですが、URN:FileDownloadService にしてやってみたらうまくいきました。 このプログラムももとは他人が Apache 2.0.44 Java 1.4.1_01 Tomcat 4.1.24 AXIS1.1 で作成して動いてたもので、自分が貰って自分のマシンで移植 しています。自分の環境は Apache 1.3(訳があって古いのを使っています) Java 1.5.0_01 Tomcat 5.5 AXIS1.2RC 原因は環境なのか、自分が悪いなのかよく分かりませんが、とりあえず、 urnで解決しました。色々みて調べて頂いて、本当に、有難う御座います。 宜しくお願い申し上げます。 > -Original Message- > From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED] > Sent: Monday, February 28, 2005 5:13 PM > To: axis-user-ja@ws.apache.org > Subject: RE: could not find deserializer > > > Chuさん、 > > 木村です。 > > 何故か理由は分からないですが、クラス名、サービス名、URNで > 「IFileDownloadService」と「FileDownloadService」がごちゃ混 > ぜになっているようですね。 > > どちらかに統一してしまった方が良いと思います。例えば、WSDD > 中の「IFileDownloadService」を「FileDownloadService」に置換 > して、前メールで示した0-4の手順を再度実施して頂ければと思い > ます。 > > よろしくお願いします。 > --- > Toshi <[EMAIL PROTECTED]> > > On Mon, 28 Feb 2005, chu wrote: > > > 木村 様 > > > > いつもお世話になっております。 > > > >> > >> 一点気になるのは、サービス名はFileDownloadServiceですよね? > >> 初回のメールで、頭にIが付いて「IFileDownloadService」となって > >> いたのですが、それぞれの関係がよく分かりません。単なるタイプミス > >> だったのでしょうか...? > >> > > ミスタイプでなくて、*.wsddの通りでService名を「 > urn:FileDownloadService」 > > でなくて「IFileDownloadService」にしています。FileDownloadServiceは > > クラス名でpackage(etcdata)にしています。deployあとIEで > > http://localhost:8080/axis/servlet/AxisServlet > > 「IFileDownloadService」はでています。最初のメールにも申し上げたよう > に > > HANDLEらしいものが表示されてます。 > > > >> 新しいWSDDでデプロイした後のWSDLを下記のURLから取得して、その > >> 結果もお知らせ頂けますでしょうか? > >> http://localhost:8080/axis/services/FileDownloadService?wsdl > >> > > 添付します。 > > > > 今度WSDL2JAVAでクライントを作成しようとすると下記の > > エラーになってしまいました。 > > java.io.IOException: Type {FileDownloadService}DataHandler is > > referenced but not defined. > >at > > > org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(Symbol > > Table.java:653) > >at > > org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable. > > java:533) > >at > > > org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTa > ble.java:5 > > 06) > >at > > > org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTa > ble.java:4 > > 83) > >at > org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java: > > 356) > >at java.lang.Thread.run(Unknown Source) > > > > これから調べますが、とりあえず、途中結果の報告まで。 > > > > 宜しくお願い申し上げます。 > > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
Chuさん、 木村です。 何故か理由は分からないですが、クラス名、サービス名、URNで 「IFileDownloadService」と「FileDownloadService」がごちゃ混 ぜになっているようですね。 どちらかに統一してしまった方が良いと思います。例えば、WSDD 中の「IFileDownloadService」を「FileDownloadService」に置換 して、前メールで示した0-4の手順を再度実施して頂ければと思い ます。 よろしくお願いします。 --- Toshi <[EMAIL PROTECTED]> On Mon, 28 Feb 2005, chu wrote: 木村 様 いつもお世話になっております。 一点気になるのは、サービス名はFileDownloadServiceですよね? 初回のメールで、頭にIが付いて「IFileDownloadService」となって いたのですが、それぞれの関係がよく分かりません。単なるタイプミス だったのでしょうか...? ミスタイプでなくて、*.wsddの通りでService名を「urn:FileDownloadService」 でなくて「IFileDownloadService」にしています。FileDownloadServiceは クラス名でpackage(etcdata)にしています。deployあとIEで http://localhost:8080/axis/servlet/AxisServlet 「IFileDownloadService」はでています。最初のメールにも申し上げたように HANDLEらしいものが表示されてます。 新しいWSDDでデプロイした後のWSDLを下記のURLから取得して、その 結果もお知らせ頂けますでしょうか? http://localhost:8080/axis/services/FileDownloadService?wsdl 添付します。 今度WSDL2JAVAでクライントを作成しようとすると下記の エラーになってしまいました。 java.io.IOException: Type {FileDownloadService}DataHandler is referenced but not defined. at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(Symbol Table.java:653) at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable. java:533) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:5 06) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:4 83) at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java: 356) at java.lang.Thread.run(Unknown Source) これから調べますが、とりあえず、途中結果の報告まで。 宜しくお願い申し上げます。 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
木村 様 いつもお世話になっております。 > > 一点気になるのは、サービス名はFileDownloadServiceですよね? > 初回のメールで、頭にIが付いて「IFileDownloadService」となって > いたのですが、それぞれの関係がよく分かりません。単なるタイプミス > だったのでしょうか...? > ミスタイプでなくて、*.wsddの通りでService名を「urn:FileDownloadService」 でなくて「IFileDownloadService」にしています。FileDownloadServiceは クラス名でpackage(etcdata)にしています。deployあとIEで http://localhost:8080/axis/servlet/AxisServlet 「IFileDownloadService」はでています。最初のメールにも申し上げたように HANDLEらしいものが表示されてます。 > 新しいWSDDでデプロイした後のWSDLを下記のURLから取得して、その > 結果もお知らせ頂けますでしょうか? > http://localhost:8080/axis/services/FileDownloadService?wsdl > 添付します。 今度WSDL2JAVAでクライントを作成しようとすると下記の エラーになってしまいました。 java.io.IOException: Type {FileDownloadService}DataHandler is referenced but not defined. at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(Symbol Table.java:653) at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable. java:533) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:5 06) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:4 83) at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java: 356) at java.lang.Thread.run(Unknown Source) これから調べますが、とりあえず、途中結果の報告まで。 宜しくお願い申し上げます。 FileDownloadService.wsdl Description: Binary data - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
Chuさん、 木村です。 以下のとおり実施したけれども、WSDLは変更されずに、現象が改善 しないということでしょうか? .*.*.*.*.*.*.* 0. 現在のFileDownloadServiceをアンデプロイする 1. 先ほどお送りしたwsddを使ってFileDownloadServiceをデプロイする 2. 新しいWSDLを取得し、FileDownloadService.wsdlとして保存する (http://localhost:8080/axis/services/FileDownloadService?wsdl) 3. 上記WSDLを利用して、クライアントスタブを生成する 4. 動作確認 .*.*.*.*.*.*.* 一点気になるのは、サービス名はFileDownloadServiceですよね? 初回のメールで、頭にIが付いて「IFileDownloadService」となって いたのですが、それぞれの関係がよく分かりません。単なるタイプミス だったのでしょうか...? 新しいWSDDでデプロイした後のWSDLを下記のURLから取得して、その 結果もお知らせ頂けますでしょうか? http://localhost:8080/axis/services/FileDownloadService?wsdl よろしくお願いします。 --- Toshi <[EMAIL PROTECTED]> On Mon, 28 Feb 2005, chu wrote: 木村 様 いつもお世話になっております。 私のdeployミスとは「クライントをwsdl2javaを作り直す」 のをわすれてしまったが、結果は一緒でした。考えば、 サーバも変えてなし、*.wsdlも一緒ですから、クライント をつくり直す必要もないですね。 宜しくお願い申し上げます。 朱 Buddy Co, http://www.bud.co.jp Chu, [EMAIL PROTECTED] Tel: +81+48-883-5353 Fax: +81+48-883-5303 -Original Message- From: chu [mailto:[EMAIL PROTECTED] Sent: Monday, February 28, 2005 2:14 PM To: axis-user-ja@ws.apache.org Subject: RE: could not find deserializer 木村 様 いつもお世話になっております。 私のdeployミスで、いまのdeployでうまくいくかもしれません。確認 しますので、また報告させて頂きます。 宜しくお願い申し上げます。 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
木村 様 いつもお世話になっております。 私のdeployミスとは「クライントをwsdl2javaを作り直す」 のをわすれてしまったが、結果は一緒でした。考えば、 サーバも変えてなし、*.wsdlも一緒ですから、クライント をつくり直す必要もないですね。 宜しくお願い申し上げます。 朱 Buddy Co, http://www.bud.co.jp Chu, [EMAIL PROTECTED] Tel: +81+48-883-5353 Fax: +81+48-883-5303 > -Original Message- > From: chu [mailto:[EMAIL PROTECTED] > Sent: Monday, February 28, 2005 2:14 PM > To: axis-user-ja@ws.apache.org > Subject: RE: could not find deserializer > > > 木村 様 > > いつもお世話になっております。 > > 私のdeployミスで、いまのdeployでうまくいくかもしれません。確認 > しますので、また報告させて頂きます。 > > 宜しくお願い申し上げます。 > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
木村 様 いつもお世話になっております。 私のdeployミスで、いまのdeployでうまくいくかもしれません。確認 しますので、また報告させて頂きます。 宜しくお願い申し上げます。 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
木村 様 いつもお世話になっております。 *.wsddに ... をコピーして deployして(エラーなし)やりました。 tomcatも自分のクライントも全て起動しなおしやりました。 残念で、結果は同じエラーなっています。 ← 上記3回を繰り返して実行してみました。修正前と同じです。 IEでhttp://localhost:8080/axis/servlet/AxisServletの IFileDownloadService (wsdl) から下記のメッセージが表示されて あります。 ... - ... 宜しくお願い申し上げます。 > > Chuさん、 > > 木村です。 > > 下記のWSDDを利用し、再度デプロイしなおした後、動作確認して頂け > ますでしょうか? > > 変更を加えた箇所は、 ... の範囲です。 > # 尚、行数の都合上、強制改行が入ってしまっているのでご注意下さい。 > > .*.*.*.*.*.*.* > http://xml.apache.org/axis/wsdd/"; > xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"; > xmlns:ns1="FileDownloadService"> > > > >returnType="ns1:DataHandler" > >xmlns:tns="http://www.w3.org/2001/XMLSchema"/> > > deserializer="org.apache.axis.encoding.ser > .JAFDataHandlerDeserializerFactory" >serializer="org.apache.axis.encoding.ser > .JAFDataHandlerSerializerFactory" >languageSpecificType="java:javax.activation.DataHandler" >qname="ns1:DataHandler" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > > > .*.*.*.*.*.*.* > > よろしくお願いします。 > --- > Toshi <[EMAIL PROTECTED]> > > On Mon, 28 Feb 2005, chu wrote: > > > 木村 様 > > > > いつもお世話になっております。 > > > >> > >> Exceptionを見る限りでは、DataHandler型に対する > >> デシリアライザの解決ができていないように見えます。 > >> どのような*.wsddでデプロイしているでしょうか? > >> 今回は、typeMapping設定が重要ですが、wsddファイル > >> 全体と、wsdlファイル全体をの2つをお送りください。 > >> (WSDLは、下記のURLにアクセスすれば取得できます) > >> http://localhost:8080/axis/services/IFileDownloadService?wsdl > >> > > > > 添付します。 > > > > 宜しくお願い申し上げます。 > > > > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
Chuさん、 木村です。 下記のWSDDを利用し、再度デプロイしなおした後、動作確認して頂け ますでしょうか? 変更を加えた箇所は、 ... の範囲です。 # 尚、行数の都合上、強制改行が入ってしまっているのでご注意下さい。 .*.*.*.*.*.*.* http://xml.apache.org/axis/wsdd/"; xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"; xmlns:ns1="FileDownloadService"> http://www.w3.org/2001/XMLSchema"/> http://schemas.xmlsoap.org/soap/encoding/"/> .*.*.*.*.*.*.* よろしくお願いします。 --- Toshi <[EMAIL PROTECTED]> On Mon, 28 Feb 2005, chu wrote: 木村 様 いつもお世話になっております。 Exceptionを見る限りでは、DataHandler型に対する デシリアライザの解決ができていないように見えます。 どのような*.wsddでデプロイしているでしょうか? 今回は、typeMapping設定が重要ですが、wsddファイル 全体と、wsdlファイル全体をの2つをお送りください。 (WSDLは、下記のURLにアクセスすれば取得できます) http://localhost:8080/axis/services/IFileDownloadService?wsdl 添付します。 宜しくお願い申し上げます。 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: could not find deserializer
木村 様 いつもお世話になっております。 > > Exceptionを見る限りでは、DataHandler型に対する > デシリアライザの解決ができていないように見えます。 > どのような*.wsddでデプロイしているでしょうか? > 今回は、typeMapping設定が重要ですが、wsddファイル > 全体と、wsdlファイル全体をの2つをお送りください。 > (WSDLは、下記のURLにアクセスすれば取得できます) > http://localhost:8080/axis/services/IFileDownloadService?wsdl > 添付します。 宜しくお願い申し上げます。 FileDownloadService.wsdd Description: Binary data FileDownloadService.wsdl Description: Binary data - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: could not find deserializer
Chuさん 木村です。 Exceptionを見る限りでは、DataHandler型に対する デシリアライザの解決ができていないように見えます。 どのような*.wsddでデプロイしているでしょうか? 今回は、typeMapping設定が重要ですが、wsddファイル 全体と、wsdlファイル全体をの2つをお送りください。 (WSDLは、下記のURLにアクセスすれば取得できます) http://localhost:8080/axis/services/IFileDownloadService?wsdl よろしくお願いします。 --- Toshi <[EMAIL PROTECTED]> On Sun, 27 Feb 2005, chu wrote: 木村 様 いつもお世話になっております。 FileDownloadServiceを作成したんですが、サーバのリータンあと、 クライントがリータン値を受けるところでエラーになってしまいました。 そのFileDownloadServiceはgetFile(filename)を提供して ファイル名へのDataHandlerをクライントへ返します。 http://localhost:8080/axis/services/IFileDownloadService?method=getFile&; in0=bf1942_weenie.mpeg IEで下記のようにそれらしいものが表示・返されました。 ... cid:3144DFE2E2CA459086792463EEC998EC"; xsi:type="ns1:DataHandler" xmlns:ns1="FileDownloadService" /> ... サーバ(サービス)側: public class FileDownloadService { DataHandler datahandler; public DataHandler getFile(String filename){ FileDataSource source; try { source = new FileDataSource(filepath + filename); System.err.println("source=[" + source + "]"); <(a) } catch (RuntimeException e) { System.err.println(e.toString()); return null; } datahandler = new DataHandler(source); System.err.println("datahandle=[" + datahandler + "]"); <(b) return datahandler; } Tomcatの画面はエラーなくて [EMAIL PROTECTED] <(a) [EMAIL PROTECTED] <(b) が表示されて残っているのは return datahandler; だけです。 クライント側: public class FileDownloadServiceStub { ... public FileDownloadServiceStub() { try { qnhandler = new QName( "IFileDownloadService", "DataHandler" ); qngetimage = new QName( "IFileDownloadService", "getFile" ); service = new Service(); call = (Call)service.createCall(); ... } catch( Exception e ) { e.printStackTrace(); } } public DataHandler getFile( String filename ) throws RemoteException { System.out.println("FileServiceStub::getFile[" + filename + "]"); <--(1) handler = (DataHandler)call.invoke(new Object[] {filename}); System.out.println("FileServiceStub::getFile[" + filename + "] done"); <--(2) return handler; } } クライントの画面で(1)が表示されて(2)の前に、下記のエラーになってしまいま した。 サーバの(b)のreturnから handler =... の前までのエラーかな。 FileServiceStub::getFile[bf1942_weenie.mpeg] AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: Deserializing parameter 'getFileReturn': could not find deserializer for type {FileDownloadService}DataHandler faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Deseri alizing parameter 'getFileReturn': could not find deserializer for type {FileDo wnloadService}DataHandler at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:273) at org.apache.axis.encoding.DeserializationContext.startElement(Deserial izationContext.java:1031) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja va:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen t.java:1140) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238) at org.apache.axis.message.RPCElement.getParams(RPCElement.java: 386) at org.apache.axis.client.Call.invoke(Call.java:2402) at org.apache.axis.client.Call.invoke(Call.java:2301) at org.apache.axis.client.Call.invoke(Call.java:1758) at networkrobot.logicserver.etcdata.FileDownloadServiceStub.getFile(File DownloadServiceStub.java:63) at networkrobot.logicserver.subLogic.MoviePlay.downloadEtcData(MoviePlay .java:223) at networkrobot.logicserver.subLogic.MoviePlay.startPlay(MoviePlay.java: 157) at networkrobot.logicserver.subLogic.MoviePlay.execute(MoviePlay.java:67 ) at networkrobot.logicserver.subLogic.ContentsAdapter.execute(ContentsAda pter.java:220) at networkrobot.logicserver.Polling.execEvent(LogicServer.java:415) at networkrobot.logicserver.Polling.run(LogicServer.java:99) {http://xml.apache.org/axis/}hostname:spike org.xml.sax.SAXException: Deserializing parameter 'getFileReturn': could not fi nd deserializer for type {FileDownloadService}DataHandler at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at org.apache.axis.client.Call.invoke(Call.java:2405) at org.apache.axis.client.Call.invoke(Call.java:2301) at org.apache.axis.client.Call.invoke(Call.java:1758) at networkrobot.logicserver.etcdata.FileDownloadServiceStub.getFile(File Dow