11 Replies Latest reply on Nov 3, 2009 4:59 AM by roopas

    IllegalStateException Cannot find property

    gryffin

      I am using JBoss 4.2.2 w/ JbossWS Native 3.0.2. After some toil I got a client based on this config working, but then I run into this error which no one else seems to have run into.


      I called a ws to retrieve an AssDTO, I updat the AssetDTO, then call the ws' 'update' method passing it back the updated AssetDTO and it barfs with this un-descriptive error.

      Has anyone else seen this? Thanks!

      Exception in thread "main" javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Cannot find property: javax.xml.ws.handler.message.outbound
       at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:410)
       at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:316)
       at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172)
       at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152)
       at $Proxy18.update(Unknown Source)
       at com.boeing.nmt.nls.mv4client.MV4Client.deleteAssociationsForAsset(MV4Client.java:234)
       at com.boeing.nmt.nls.test.AssetTest.main(AssetTest.java:22)
      Caused by: java.lang.IllegalStateException: Cannot find property: javax.xml.ws.handler.message.outbound
       at org.jboss.ws.core.jaxws.handler.MessageContextJAXWS.processPivot(MessageContextJAXWS.java:109)
       at org.jboss.ws.core.jaxws.client.ClientImpl.processPivot(ClientImpl.java:369)
       at org.jboss.ws.core.CommonClient.processPivotInternal(CommonClient.java:479)
       at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:407)
       at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:304)
       ... 5 more




        • 1. Re: IllegalStateException Cannot find property
          gryffin

          Here's the relevant part of the port class,

          /**
           * This class was generated by the JAX-WS RI.
           * JAX-WS RI 2.1.3-b02-
           * Generated source version: 2.0
           *
           */
          @WebService(name = "AssetAPIServicePortType", targetNamespace = "http://service.api.mobileview.aeroscout.com")
          public interface AssetAPIServicePortType {
          
          
           /**
           *
           * @param in0
           * @return
           * returns com.boeing.nmt.foo.AssetDTO
           */
           @WebMethod
           @WebResult(name = "out", targetNamespace = "http://service.api.mobileview.aeroscout.com")
           @RequestWrapper(localName = "update", targetNamespace = "http://service.api.mobileview.aeroscout.com", className = "com.boeing.nmt.foo.Update")
           @ResponseWrapper(localName = "updateResponse", targetNamespace = "http://service.api.mobileview.aeroscout.com", className = "com.boeing.nmt.foo.UpdateResponse")
           public AssetDTO update(
           @WebParam(name = "in0", targetNamespace = "http://service.api.mobileview.aeroscout.com")
           AssetDTO in0);


          And here's the Update class itself. Perhaps I'm missing some namespace value in here?

          package com.boeing.nmt.foo;
          
          import java.io.Serializable;
          import javax.xml.bind.annotation.XmlAccessType;
          import javax.xml.bind.annotation.XmlAccessorType;
          import javax.xml.bind.annotation.XmlElement;
          import javax.xml.bind.annotation.XmlRootElement;
          import javax.xml.bind.annotation.XmlType;
          
          
          /**
           * <p>Java class for anonymous complex type.
           *
           * <p>The following schema fragment specifies the expected content contained within this class.
           *
           * <pre>
           * &lt;complexType>
           * &lt;complexContent>
           * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
           * &lt;sequence>
           * &lt;element name="in0" type="{http://dto.api.mobileview.aeroscout.com}UserDTO"/>
           * &lt;/sequence>
           * &lt;/restriction>
           * &lt;/complexContent>
           * &lt;/complexType>
           * </pre>
           *
           *
           */
          @XmlAccessorType(XmlAccessType.FIELD)
          @XmlType(name = "", propOrder = {
           "in0"
          })
          @XmlRootElement(name = "update", namespace = "http://service.api.mobileview.aeroscout.com")
          public class Update
           implements Serializable
          {
          
           private final static long serialVersionUID = 1L;
           @XmlElement(namespace = "http://service.api.mobileview.aeroscout.com", required = true, nillable = true)
           protected UserDTO in0;
          
           /**
           * Gets the value of the in0 property.
           *
           * @return
           * possible object is
           * {@link UserDTO }
           *
           */
           public UserDTO getIn0() {
           return in0;
           }
          
           /**
           * Sets the value of the in0 property.
           *
           * @param value
           * allowed object is
           * {@link UserDTO }
           *
           */
           public void setIn0(UserDTO value) {
           this.in0 = value;
           }
          
          }
          


          This code was generated by wsconsume from the JBossWS package. I used a jaxb binding file with generateElementProperty="false" .

          • 2. Re: IllegalStateException Cannot find property
            gryffin

            I installed JBossAS 4.2.3, this time NOT updating it to JBossWS 3.0.4. I get the same error running my client through Eclipse. I tried wsrunclient ( v4.2.3) and got a different error:


            C:\Documents and Settings\tx714c\My Documents\workspace\MV4Client2\bin>c:\jboss-4.2.3.GA\bin\wsruncl
            ient com.boeing.nmt.nls.test.AssetTest
            log4j:WARN No appenders could be found for logger (org.jboss.ws.metadata.builder.jaxws.JAXWSWebServi
            ceMetaDataBuilder).
            log4j:WARN Please initialize the log4j system properly.
             ====================================
            DISABLE TAG: FFF123456789
            Exception in thread "main" javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException
            : setProperty must be overridden by all subclasses of SOAPMessage
             at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:404)
             at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:314)
             at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172)
             at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152)
             at $Proxy19.findPopulatedTagByNetworkId(Unknown Source)
             at com.boeing.nmt.nls.mv4client.MV4Client.disableTag(MV4Client.java:305)
             at com.boeing.nmt.nls.test.AssetTest.main(AssetTest.java:25)
            Caused by: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses
             of SOAPMessage
             at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:441)
             at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:83)
             at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:171)
             at org.jboss.ws.core.CommonSOAP11Binding.createMessage(CommonSOAP11Binding.java:59)
             at org.jboss.ws.core.CommonSOAPBinding.bindRequestMessage(CommonSOAPBinding.java:158)
             at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:291)
             at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
             ... 5 more


            I am using code generated by JBoss, using JBoss to run it, why is JBoss carping out?

            • 3. Re: IllegalStateException Cannot find property
              peterj

              Based on the error message "setProperty must be overridden by all subclasses of SOAPMessage" I will guess that you are running with JDK 6. You should either fall back to JDK 1.5 or see http://jbws.dyndns.org/mediawiki/index.php?title=Install_JBossWS#Using_JBossWS_with_JDK_6 for getting this to work with JDK 6.

              I also want to caution you about running within a directory that has spaces in its name - that tends to give various Java libraries fits. It might not be an issue right now, but if you see weird errors you might want to move your code elsewhere.

              • 4. Re: IllegalStateException Cannot find property
                gryffin

                Thanks PeterJ for your suggestion.

                I went ahead and tried again from a 'space-less' directory path and ensured that I was using Java 1.5.x. No improvment.

                C:\MV4Client2\bin>\jboss-4.2.3.ga\bin\wsrunclient com.boeing.nmt.nls.test.AssetTest
                log4j:WARN No appenders could be found for logger (org.jboss.ws.metadata.builder.jaxws.JAXWSWebServi
                ceMetaDataBuilder).
                log4j:WARN Please initialize the log4j system properly.
                ====================================
                DISABLE TAG: FFF123456789
                Tag deleted: false
                Exception in thread "main" javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Cannot
                find property: javax.xml.ws.handler.message.outbound
                at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:404)
                at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:314)
                at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172)
                at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152)
                at $Proxy19.update(Unknown Source)
                at com.boeing.nmt.nls.mv4client.MV4Client.disableTag(MV4Client.java:308)
                at com.boeing.nmt.nls.test.AssetTest.main(AssetTest.java:25)
                Caused by: java.lang.IllegalStateException: Cannot find property: javax.xml.ws.handler.message.outbo
                und
                at org.jboss.ws.core.jaxws.handler.MessageContextJAXWS.processPivot(MessageContextJAXWS.java
                :109)
                at org.jboss.ws.core.jaxws.client.ClientImpl.processPivot(ClientImpl.java:363)
                at org.jboss.ws.core.CommonClient.processPivotInternal(CommonClient.java:476)
                at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:404)
                at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
                ... 5 more
                C:\MV4Client2\bin>echo %JAVA_HOME%
                C:\Program Files\Java\jdk1.5.0_15

                • 5. Re: IllegalStateException Cannot find property
                  peterj

                  It might not be an improvement, but at least it is different - the error message has changed! I don't recognize this error - I will have to do some research.

                  Did you regenerate the client stubs using the JBossAS 4.2.3 libraries/tools and JDK 1.5?

                  • 6. Re: IllegalStateException Cannot find property
                    peterj

                    OK, just read the first post, and it looks like you are back to the error message in that post.

                    • 7. Re: IllegalStateException Cannot find property
                      gryffin

                      Here's the output with more detail about the run environment:

                      C:\MV4Client2\bin>\jboss-4.2.3.ga\bin\wsrunclient com.boeing.nmt.nls.test.AssetTest
                       .
                      Java directory: "C:\Program Files\Java\jdk1.5.0_15\bin\java"
                       .
                      Java version:
                      java version "1.5.0_15"
                      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_15-b04)
                      Java HotSpot(TM) Client VM (build 1.5.0_15-b04, mixed mode, sharing)
                       .
                      Execution directory: C:\MV4Client2\bin\
                       .
                      log4j:WARN No appenders could be found for logger (org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder).
                      log4j:WARN Please initialize the log4j system properly.
                       ====================================
                      DISABLE TAG: FFF123456789
                      Tag deleted: false
                      Exception in thread "main" javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Cannot find property: javax.xml.ws.handler.message.outbound


                      • 8. Re: IllegalStateException Cannot find property
                        peterj

                        I looked at the source code.

                        The 'outbound' property is set to false when the client sends a request to JBossAS and to true when JBossAS responds back. The exception means that property has not been set.

                        Earlier in the stack trace, in CommonClient.invoke, line 404, we find that someone commited the cardinal sin of exception handling - they dropped the exception on the floor not even bothering to log it. Instead, they called processPivotInternal which eventually threw the exception that you saw.

                        So that is why the exception makes no sense - the real cause for the problem was thrown away.

                        Unfortunately, unless someone else has any ideas, the only thing I can think of is for you to patch CommonClient.invoke and log the exception so that you can discover the root cause.

                        • 9. Re: IllegalStateException Cannot find property
                          gryffin

                          Okay, PeterJ. That helps define the problem. I'd understood that the property wasn't being set, but I hadn't found my way far enough upstream in the source to find the headwaters, so to speak, in CommonClient.

                          I'll look into tweaking the class and see what I get. Thanks!

                          • 10. Re: IllegalStateException Cannot find property
                            asoldano

                            OK, I've patched the sources to log that exception (which btw you should have got in the soap fault anyway). This will be available in JBossWS 3.0.6.
                            Did you find the reason of your issue in the mean time?

                            • 11. Re: IllegalStateException Cannot find property

                              I am facing the similar issue. Please let me know if you have the solution.Thanks