0 Replies Latest reply on Dec 4, 2006 12:22 AM by Colin Boatwright

    Document/Literal and org.w3c.dom.Element return type

    Colin Boatwright Newbie

      I read in several places that org.w3c.dom.Element gets mapped to anyType and can be used in Document/Literal endpoints. However, I cannot seem to get a simply test endpoint (using JSR-181 EJB) to work.

      Using JBoss 4.0.5.GA w/ JBossWS 1.0.4.GA

      @EJB(name="PingBuildLinksEndPointBean", beanInterface=IPingBuildLinksEndPointBean.class, description="This is the ping description", beanName="PingBuildLinksEndPointBean")
      @WebService(name="PingBuildLinksEndPoint")
      @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL)
      @PortComponent(authMethod="BASIC", urlPattern="/test.ws",transportGuarantee="CONFIDENTIAL")
      @RolesAllowed("BLDADM")
      @SecurityDomain("BuildLinksWs")
      
      /**
       * @author cboatwright
       */
      public @Stateless class PingBuildLinksEndPointBean extends AbstractDatabaseSessionEndPoint
       implements IPingBuildLinksEndPointBean
      {
       public PingBuildLinksEndPointBean()
       throws CreateException, BuildLinksException
       {
       super();
       }
      
       @WebMethod
       public Element elementPing(String arg0)
       throws BuildLinksFault
       {
       Element rv = null;
      
       log.debug("ignored arg0=" + arg0);
      
       try
       {
       rv = DOMUtils.parse("<helloWorld/>");
       }
       catch (IOException e)
       {
       throw new BuildLinksFault(e.getMessage());
       }
      
       return rv;
       }
      


      I get the following exception (regardless of the length of the XML returned, the above example just has one node):

      23:58:03,035 ERROR [[PingBuildLinksEndPointBean]] Servlet.service() for servlet PingBuildLinksEndPointBean threw exception
      org.jboss.xb.binding.JBossXBRuntimeException: Failed to find read method or field for property '_value' in class org.apache.xerces.dom.DeferredElementNSImpl
       at org.jboss.xb.binding.introspection.ClassInfo.getFieldInfo(ClassInfo.java:81)
       at org.jboss.xb.binding.introspection.FieldInfo.getFieldInfo(FieldInfo.java:155)
       at org.jboss.xb.binding.sunday.marshalling.MarshallerImpl.getJavaValue(MarshallerImpl.java:1266)
       at org.jboss.xb.binding.sunday.marshalling.MarshallerImpl.getElementValue(MarshallerImpl.java:1284)
      .. cut
      


      Any advice on how to send back the result as a well-formed XML element? When I try just to do it as a string, all of the XML reserved characters get escaped ...