users@glassfish.java.net

javax.xml.bind.JAXBException: (variable) is not a valid property on class.

From: <glassfish_at_javadesktop.org>
Date: Mon, 30 Jul 2007 20:47:16 PDT

I am running Sun Java System Application Server Platform Edition 9.0_01 (build b02-p01).
I am receiving the error below on one of my web methods.

DetailsTimestamp: Jul 30, 2007 16:21:07.336
Log Level: WARNING
Logger: javax.enterprise.system.stream.err
Name-Value Pairs: _ThreadID=12;_ThreadName=httpWorkerThread-8181-1;_RequestID=3fead34a-1407-4d49-ad5e-40084bb281a2;
Record Number: 7391
Message ID: javax.xml.bind.JAXBException
Complete Message
DepartmentID is not a valid property on class com.elcompanies.services.jaxws.GetCurrentPKDAssignment at com.sun.xml.ws.encoding.EncoderDecoderBase.getRawAccessor(EncoderDecoderBase.java:128) at com.sun.xml.ws.encoding.EncoderDecoderBase.getWrapperChildValue(EncoderDecoderBase.java:81) at com.sun.xml.ws.encoding.soap.EncoderDecoder.fillData(EncoderDecoder.java:78) at com.sun.xml.ws.encoding.soap.ServerEncoderDecoder.toMessageInfo(ServerEncoderDecoder.java:97) at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher.toMessageInfo(SOAPMessageDispatcher.java:209) at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher$SoapInvoker.invoke(SOAPMessageDispatcher.java:573) at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:147) at com.sun.xml.ws.server.Tie.handle(Tie.java:90) at com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:160) at com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:89) at com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:186) at com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:117) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:101) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:71) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processBlocked(ProcessorTask.java:607) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:842) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.doTask(ProcessorTask.java:436) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252) at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)Caused by: javax.xml.bind.JAXBException: DepartmentID is not a valid property on class com.elcompanies.services.jaxws.GetCurrentPKDAssignment at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getElementPropertyAccessor(JAXBContextImpl.java:816) at com.sun.xml.ws.encoding.EncoderDecoderBase.getRawAccessor(EncoderDecoderBase.java:124) ... 31 more
 
The log shows DepartmentID is not a valid parameter, but the XSD file has this:
<xs:complexType name="getCurrentPKDAssignment">
- <xs:sequence>
  <xs:element name="DepartmentID" type="xs:string" minOccurs="0" />
  <xs:element name="ItemID" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>

The source code is:
    @WebMethod
    public String getCurrentPKDAssignment(@WebParam(name="DepartmentID") final String DepartmentID, @WebParam(name="ItemID") final String ItemID) throws FamilyException {
        //Calling the business method in the service bean
        setAuthenticationUser();
        return familyRemote.getCurrentPKDAssignment(DepartmentID, ItemID);
        
    }

I don't know if it matters, but we are using X.509 certificates and communicating over https. We also have a custom header in the XML header.

This service has 35 other methods that do not have a problem, so I don't know why the app server is complaining about this one. I also get the same error calling it from our VB.Net client as well as from Crosscheck Networks SOAPSonar, so I don't think the client is the problem.

Here is the request XML from SOAPSonar:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.xxx.com/">
<soap:Header>
    <GCSAuthHeader xmlns="http://xxxx.net/GCS">
      <UserId>MYID</UserId>
    </GCSAuthHeader>
  </soap:Header>
  <soap:Body>
    <tns:getCurrentPKDAssignment>
      <DepartmentID>test</DepartmentID>
      <ItemID>123456789</ItemID>
    </tns:getCurrentPKDAssignment>
  </soap:Body>
</soap:Envelope>

Any advise would be much appreciated.
[Message sent by forum member 'kfeit' (kfeit)]

http://forums.java.net/jive/thread.jspa?messageID=228840