以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  帮忙解决BPEL例子中的复杂数据类型的序列化问题!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=31452)


--  作者:njtoto
--  发布时间:4/28/2006 8:55:00 AM

--  帮忙解决BPEL例子中的复杂数据类型的序列化问题!
本人最近安装好ActiveBPEL后,然后调试sample中的custom_fuction例子,但是发现存在下面的问题:
运行ant client后,程序出现问题,如下:
D:\softback\all\custom_functions>ant client
Buildfile: build.xml

timestamp:

init:

compile:

client:
     [java] AxisFault
     [java]  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userEx
ception
     [java]  faultSubcode:
     [java]  faultString: org.xml.sax.SAXException: Deserializing parameter 'bra
ndYearType':  could not find deserializer for type {http://ht.activebpel.org/cus
tom_function}BrandYearType
     [java]  faultActor:
     [java]  faultNode:
     [java]  faultDetail:
     [java]     {http://xml.apache.org/axis/}hostname:anmei

     [java] org.xml.sax.SAXException: Deserializing parameter 'brandYearType':
could not find deserializer for type {http://ht.activebpel.org/custom_function}B
randYearType
     [java]     at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaul
tBuilder.java:221)
     [java]     at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFault
Builder.java:128)
     [java]     at org.apache.axis.encoding.DeserializationContext.endElement(De
serializationContext.java:1087)
     [java]     at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknow
n Source)
     [java]     at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElemen
t(Unknown Source)
     [java]     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$Fragmen
tContentDispatcher.dispatch(Unknown Source)
     [java]     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDoc
ument(Unknown Source)
     [java]     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown So
urce)
     [java]     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown So
urce)
     [java]     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
     [java]     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Sou
rce)
     [java]     at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
     [java]     at org.apache.axis.encoding.DeserializationContext.parse(Deseria
lizationContext.java:227)
     [java]     at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)

     [java]     at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
     [java]     at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(Mu
stUnderstandChecker.java:62)
     [java] Exception seen: org.xml.sax.SAXException: Deserializing parameter 'b
randYearType':  could not find deserializer for type {http://ht.activebpel.org/c
ustom_function}BrandYearType
     [java]     at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)

     [java]     at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2748)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2424)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2347)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1804)
     [java]     at org.activebpel.samples.custom_function.client.TestClient.call
Service(TestClient.java:82)
     [java]     at org.activebpel.samples.custom_function.client.TestClient.main
(TestClient.java:45)

BUILD SUCCESSFUL
Total time: 16 seconds
其中在tomcat的界面也出现问题,如下所示:
Error during invoke (BPEL RPC Handler).
2006-4-27 21:12:34 org.activebpel.rt.AeException logError
严重: Error during invoke (BPEL RPC Handler).
Deserializing parameter 'brandYearType':  could not find deserializer for type {
http://ht.activebpel.org/custom_function}BrandYearType
2006-4-27 21:12:34 org.activebpel.rt.AeException logError
严重: Deserializing parameter 'brandYearType':  could not find deserializer for
type {http://ht.activebpel.org/custom_function}BrandYearType
org.xml.sax.SAXException: Deserializing parameter 'brandYearType':  could not fi
nd deserializer for type {http://ht.activebpel.org/custom_function}BrandYearType


        at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
        at org.apache.axis.encoding.DeserializationContext.startElement(Deserial
izationContext.java:1035)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:165)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:1141)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
        at org.activebpel.rt.axis.bpel.handlers.AeBpelRPCHandler.extractMessageP
arts(AeBpelRPCHandler.java:164)
        at org.activebpel.rt.axis.bpel.handlers.AeBpelRPCHandler.invoke(AeBpelRP
CHandler.java:126)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453
)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:69
9)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:540)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
        at java.lang.Thread.run(Thread.java:534)

2006-4-27 22:42:11 org.activebpel.rt.AeException logError
严重: org.xml.sax.SAXException: Deserializing parameter 'BrandYearType':  could
not find deserializer for type {http://ht.activebpel.org/custom_function}BrandYe
arType
        at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
        at org.apache.axis.encoding.DeserializationContext.startElement(Deserial
izationContext.java:1035)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:165)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:1141)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
        at org.activebpel.rt.axis.bpel.handlers.AeBpelRPCHandler.extractMessageP
arts(AeBpelRPCHandler.java:164)
        at org.activebpel.rt.axis.bpel.handlers.AeBpelRPCHandler.invoke(AeBpelRP
CHandler.java:126)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453
)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:69
9)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
有没有朋友也碰到这种情况,麻烦告知解决方法,谢谢你啦。


--  作者:hopeshared
--  发布时间:4/28/2006 11:03:00 AM

--  
这个错误是没有找到BrandYearType而产生的吧
我没有用过activeBPEL,没办法,我们老大硬塞给我一堆ibm的大工具
我的猜想是这样:BrandYearType应该是一个xml shema,恐怕是这个shema丢了。这个shema文件是import到wsdl中的还是直接写在wsdl中的?

--  作者:njtoto
--  发布时间:4/28/2006 11:51:00 AM

--  
我记得原先在axis平台上部署需要发布的服务的时候,都是有一个专门的wsdd文件,然后在服务端展开这个wsdd,然后会在一个server-config.wsdd增加需要发布的web服务的内容,比如包括这里的复杂数据类型的映射,但是这里的bpel他好像是跟axis是平行目录,而且sample例子中也没有wsdd文件,即使自己产生了相应的wsdd文件,我也不知道这个wsdd该部署到哪个文件下去,即这个服务的内容会增加到哪个服务端的配置文件上去。
我估计这个默认的配置文件上并没有这个复杂数据类型的映射,所以会出现找不到复杂数据类型,有朋友知道吗?请告知,谢谢。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
164.063ms