To those of you that have used java.sql.Date:

I am having problems sending in parameters that are defined in Java as
java.sql.Date.  Please forgive me if this is a question that has been
answered before.  I have searched the mailing list and the newsgroups to no
avail.  Hopefully someone will be able to help me.

I am currently using the latest axis 1.1 release version, j2sdk 1.4.2-03, on
linux RedHat 9.0.  In the following example jws file, I have three methods,
echoString, currentDate, and echoDate.

<start of code file="SoapTest.jws">
public class SoapTest {

  public String echoString( String s ) {
    return s;
  }

  public java.sql.Date currentDate() {
    return new java.sql.Date( System.currentTimeMillis() );
  }

  public java.sql.Date echoDate( java.sql.Date d ) {
    return d;
  }
  
}
<end of code>

When I call echoString:
http://localhost:8080/axis/SoapTest.jws?method=echoString&s=teststring
I get what I would expect back:
...
<echoStringReturn xsi:type="xsd:string">teststring</echoStringReturn>
...

When I call currentDate:
http://localhost:8080/axis/SoapTest.jws?method=currentDate
I get what I would expect back:
...
<currentDateReturn xsi:type="xsd:date">2004-03-22</currentDateReturn>
...

However, when I call echoDate:
http://localhost:8080/axis/SoapTest.jws?method=echoDate&d=2004-03-22
I get what I don't expect back:
<soapenv:Envelope>
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>Server.userException</faultcode>
      <faultstring>No such operation 'echoDate'</faultstring>
      <detail/>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

It appears that I can't pass in a date???  Does anyone have any experience
with this problem?  Any help or advice would be greatly appreciated.
Thanks,
- Jake

Other information:

http://localhost:8080/axis/SoapTest.jws?wsdl
Produces:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost:8080/axis/SoapTest.jws";
xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://localhost:8080/axis/SoapTest.jws";
xmlns:intf="http://localhost:8080/axis/SoapTest.jws";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  <wsdl:message name="echoDateResponse">
    <wsdl:part name="echoDateReturn" type="xsd:date"/>
  </wsdl:message>
  <wsdl:message name="echoDateRequest">
    <wsdl:part name="d" type="xsd:date"/>
  </wsdl:message>
  <wsdl:message name="currentDateResponse">
    <wsdl:part name="currentDateReturn" type="xsd:date"/>
  </wsdl:message>
  <wsdl:message name="echoStringResponse">
    <wsdl:part name="echoStringReturn" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="currentDateRequest">
  </wsdl:message>
  <wsdl:message name="echoStringRequest">
    <wsdl:part name="s" type="xsd:string"/>
  </wsdl:message>
  <wsdl:portType name="SoapTest">
    <wsdl:operation name="currentDate">
      <wsdl:input message="impl:currentDateRequest"
name="currentDateRequest"/>
      <wsdl:output message="impl:currentDateResponse"
name="currentDateResponse"/>
    </wsdl:operation>
    <wsdl:operation name="echoDate" parameterOrder="d">
      <wsdl:input message="impl:echoDateRequest" name="echoDateRequest"/>
      <wsdl:output message="impl:echoDateResponse" name="echoDateResponse"/>
    </wsdl:operation>
    <wsdl:operation name="echoString" parameterOrder="s">
      <wsdl:input message="impl:echoStringRequest"
name="echoStringRequest"/>
      <wsdl:output message="impl:echoStringResponse"
name="echoStringResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="SoapTestSoapBinding" type="impl:SoapTest">
    <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="currentDate">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="currentDateRequest">
        <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://DefaultNamespace"; use="encoded"/>
      </wsdl:input>
      <wsdl:output name="currentDateResponse">
        <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/SoapTest.jws"; use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoDate">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="echoDateRequest">
        <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://DefaultNamespace"; use="encoded"/>
      </wsdl:input>
      <wsdl:output name="echoDateResponse">
        <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/SoapTest.jws"; use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoString">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="echoStringRequest">
        <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://DefaultNamespace"; use="encoded"/>
      </wsdl:input>
      <wsdl:output name="echoStringResponse">
        <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/SoapTest.jws"; use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="SoapTestService">
    <wsdl:port binding="impl:SoapTestSoapBinding" name="SoapTest">
      <wsdlsoap:address location="http://localhost:8080/axis/SoapTest.jws"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>


In searching the logs, the following dump occurs:
No such operation 'echoDate'
        at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:301)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
        at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:1
84)
        at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333)
        at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:
71)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
        at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
        at
org.apache.axis.transport.http.AxisServlet.invokeEndpointFromGet(AxisServlet
.java:544)
        at
org.apache.axis.transport.http.AxisServlet.processMethodRequest(AxisServlet.
java:466)
        at
org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:294)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
339)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrR
ealm.java:220)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(ContainerStat
sValve.java:76)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssoci
ationValve.java:65)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:197)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615)
        at
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:677)
        at java.lang.Thread.run(Thread.java:534)

Reply via email to