a_789_123
你好,我遇到一个新的问题,解决不了,帮忙看一下
#!/usr/bin/perl
use SOAP::Lite+trace;
use POSIX qw(strftime);
use Time::Local;
#my $atime='20080601';
my $atime;
my $ef=localtime(time);
my $fileType="txt";
my $uris='http://10.0.18.230:8080/AllCounterService/';
my $filePath="10.0.21.26:8080:/forWK/catalina(2008-06-23).log/@'maintain'/@'maintain6789'";
my $btime=SOAP::Data->name('endtime')->type('date')->value($ef);
my $bol=SOAP::Data->name('Flag')->type('boolean')->value("true");
my $path=SOAP::Data->name('filePath')->type('string')->value($filePath);
my $txt=SOAP::Data->name('fileType')->type('string')->value("txt");
my $ret=SOAP::Lite
-> uri('http://10.0.18.230:8080/AllCounterService/')
-> proxy('http://10.0.18.230:8080/AllCounterService/services/AllCounterService')
-> noticePickFile($txt,$btime,$path,$bol)
-> result;
INFO: Fault occurred!
org.codehaus.xfire.fault.XFireFault: Parameter {[url]http://10.0.18.230:8080/AllCounterService/[/url]}noticePickFile does not exist!
at org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:201)
at org.codehaus.xfire.service.binding.DocumentBinding.readMessage(DocumentBinding.java:35)
at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
apile
-> noticePickFile($txt,$btime,$path,$bol)
没这个method....
下面是noticePickFile要传入的Object..
应该是notickPickFile($obj);
$obj是一个Object , 里面要有四个attribute...
你要看一下文档里面有关ComplexType Object那一段..我没写过这麽复杂的...
[quote]
<xsd:element name="noticePickFile">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="fileType" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="endTime" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="1" name="filePath" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="Flag" nillable="true" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
[/quote]
[[i] 本帖最后由 apile 于 2008-6-27 14:01 编辑 [/i]]
a_789_123
你好,apile
你好,apile :
我没能解决perl中的DateTime这个类型,现在将endTime参数的类型改为:String类型的话,我的问题就解决了,
#!/usr/bin/perl
use SOAP::Lite+trace;
use POSIX qw(strftime);
use Time::Local;
my $btime=SOAP::Data->name('endtime')->type('string')->value($ef);
my $bol=SOAP::Data->name('Flag')->type('boolean')->value("true");
my $path=SOAP::Data->name('filePath')->type('string')->value($filePath);
my $txt=SOAP::Data->name('fileType')->type('string')->value("txt");
my $ret=SOAP::Lite
-> uri('http://10.0.10.2:8080/AllCounterService/')
-> proxy('http://10.0.10.2:8080/AllCounterService/services/AllCounterService')
-> noticePickFile($txt,$btime,$path,$bol)
-> result;
谢谢你,给我的建议和帮助,谢了啊!!