问题描述
接口实现类SayHiImpl.javaimportjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;importjava.sql.Blob;publicBlobgetDoc(Stringname){Stringsql="selectt1.fsdata_dataFROMmw_sys.mwt_om_fsdatat1,mw_sys.mwt_is_vfilet2wheret1.vfile_id=t2.vfile_idandt2.vfile_name='"+name+"'";Connectionconn=null;Statementstmt=null;ResultSetrs=null;Blobblob=null;try{Class.forName("dm.jdbc.driver.DmDriver");conn=DriverManager.getConnection(url,user,pwd);stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(rs.next()){blob=rs.getBlob(1);}}catch(Exceptione){e.printStackTrace();}returnblob;}
JSP页面调用通过,我在用MyEcilipseXfireWebServiceClient自动生成向导最后点击完成那步里报这样错误:src-resolve.4.2:Errorresolvingcomponent'ns2:Blob'.Itwasdetectedthat'ns2:Blob'namespace'http://java.sql',butcompenentsfromthisnamespacearenotreferenceablefrom....很长,还有另外一行错误,跟上一行很类似只是ns2:后的Blob变成了InputStream,http://java.sql变成http://java.io我去网上搜索了关于调用返回复杂对象的写法,在接口同包下添加了SayHi.aegis.xml(接口名SayHi.java):<?xmlversion="1.0"encoding="UTF-8"?><mappings><mapping><methodname="getUser"><return-typecomponentType="java.sql.Blob"/></method></mapping></mappings>
仍然是同样错误,Xfire方式是客户指定的,我是个新手,还请各位各位高人帮忙啊,我哪里错了?
解决方案
解决方案二:
XML里的getUser是我写错了,应该是getDoc,错误还是同样,还是没人来回答悲剧
解决方案三:
不用java.sql.Blob"/>换个类型,String试试