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: [email protected] > 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: [email protected] 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: [email protected] > 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
