WfSvcClient.getTaskQueryService() wf_config.xml doesnt conform

I can't figure this out and I would appreciate it if someone could help guide me. I am new to bpel and it's Java APIs. I have looked at a few other posts that are similar but none share the same issue that I am experiencing.
I am attempting to execute the following code.
          wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(
                    WorkflowServiceClientFactory.SOAP_CLIENT);
          ITaskQueryService tqs = wfSvcClient.getTaskQueryService();
and I am getting the following error:
11:58:24 ERROR [services] - <::> ORABPEL-30027
11:58:24 ERROR [services] - <::>
11:58:24 ERROR [services] - <::> Invalid configuration file wf_config.xml
11:58:24 ERROR [services] - <::> The configuration file wf_config.xml doesnt conform to its XML schema definition. The errors are {0}
11:58:24 ERROR [services] - <::> Make sure that the configuration file wf_config.xml conforms to its XML schema definition. Contact oracle support if error is not fixable.
11:58:24 ERROR [services] - <::>
11:58:24 ERROR [services] - <::>      at oracle.bpel.services.config.ConfigurationManager.init(ConfigurationManager.java:70)
11:58:24 ERROR [services] - <::>      at oracle.bpel.services.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:101)
11:58:24 ERROR [services] - <::>      at oracle.bpel.services.workflow.verification.impl.VerificationService.<clinit>(VerificationService.java:160)
11:58:24 ERROR [services] - <::>      at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.<clinit>(AbstractDOMTaskQueryServiceClient.java:76)
11:58:24 ERROR [services] - <::>      at oracle.bpel.services.workflow.client.SOAPWorkflowServiceClient.getTaskQueryService(SOAPWorkflowServiceClient.java:76)
11:58:24 ERROR [services] - <::>      at com.fdusa.eresxpress.queue.ConnectBPEL.init(ConnectBPEL.java:85)
11:58:24 ERROR [services] - <::>      at com.fdusa.eresxpress.queue.ConnectBPEL.main(ConnectBPEL.java:266)
11:58:24 ERROR [services] - <::> ORABPEL-30027
I am performing a proof-of-concept using a stand-alone Java class. The wf-config.xml file was generated by the Oracle install onto my windows laptop.
The snip of code I added is attempting to use the SOAP client. I have attempted to use the JAVA client and I get the same error.
Here is the offending configuration file.
<workflowConfigurations
xmlns="http://xmlns.oracle.com/pcbpel/humanworkflow/configurations"
xmlns:user="http://xmlns.oracle.com/bpel/workflow/userMetadata">
<taskAutoReleaseConfigurations>
<taskAutoRelease priority="1" default="P1D" percentageOfExpiration="30"/>
<taskAutoRelease priority="2" default="P2D" percentageOfExpiration="40"/>
<taskAutoRelease priority="3" default="P3D" percentageOfExpiration="50"/>
<taskAutoRelease priority="4" default="P4D" percentageOfExpiration="60"/>
<taskAutoRelease priority="5" default="P5D" percentageOfExpiration="70"/>
</taskAutoReleaseConfigurations>
<worklistApplicationURL>http://localhost:8888/integration/worklistapp/TaskDetails?taskId=PC_HW_TASK_ID_TAG</worklistApplicationURL>
<actionableEmailAccountName/>
<pushbackAssignee>INITIAL_ASSIGNEES</pushbackAssignee>
<assigneeDelimiter><![CDATA[,]]></assigneeDelimiter>
<shortHistoryActions>
<action>ACQUIRE</action>
<action>INFO_REQUEST</action>
<action>INFO_SUBMIT</action>
<action>RELEASE</action>
</shortHistoryActions>
<workflowServiceSessionTimeoutInMinutes>60</workflowServiceSessionTimeoutInMinutes>
<user:ruleRepositoryInfo>
<user:ruleEngine>ORACLE</user:ruleEngine>
<user:repositoryLocation>WFRepository</user:repositoryLocation>
<user:dictionaryName>WFDictionary</user:dictionaryName>
<user:reposProperty name="reposType">jar</user:reposProperty>
</user:ruleRepositoryInfo>
<property name="worklist.redirectpage" value="TaskDetails" />
<property name="worklist.loginpage" value="Login.jsp" />
<property name="worklist.errorpage" value="Error.jsp" />
</workflowConfigurations>
Thanks in advance for your feedback.

Hi
Pl let me know if you have solved this problem. I am facing same issue in my project.
Thanks in advance.
Ranjeet

Similar Messages

  • ORABPEL-30028  Invalid configuration file wf_config.xml

    Hi,
    Recently I have upgraded BPEL 10.1.3.1.0 to 10.1.3.4.0. I have included all the required jar files in classpath even though I am getting the below error.
    Please assist me to resolve this.
    ORABPEL-30028
    Invalid configuration file wf_config.xml
    The configuration file wf_config.xml not be read.
    Make sure that the configuration file wf_config.xml is available and is a valid XML document. Contact oracle support if error is not fixable.
         at oracle.bpel.services.config.ConfigurationManager.init(ConfigurationManager.java:79)
         at oracle.bpel.services.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:101)
         at oracle.bpel.services.config.ConfigurationManager.getProperty(ConfigurationManager.java:119)
         at oracle.bpel.services.config.ConfigurationManager.getBooleanProperty(ConfigurationManager.java:170)
         at oracle.bpel.services.common.exception.ServicesException.<clinit>(ServicesException.java:61)
         at oracle.bpel.services.config.ConfigurationManager.init(ConfigurationManager.java:79)
         at oracle.bpel.services.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:101)
         at oracle.bpel.services.config.ConfigurationManager.getProperty(ConfigurationManager.java:119)
         at oracle.bpel.services.config.ConfigurationManager.getProperty(ConfigurationManager.java:141)
         at oracle.bpel.services.config.ConfigurationManager.getStringProperty(ConfigurationManager.java:187)
         at oracle.bpel.services.workflow.task.impl.WorkflowUtil.<clinit>(WorkflowUtil.java:127)
         at oracle.bpel.services.workflow.repos.Predicate.isUserColumnAndCaseAgnostic(Predicate.java:726)
         at oracle.bpel.services.workflow.repos.Predicate.appendPredicateList(Predicate.java:780)
         at oracle.bpel.services.workflow.repos.Predicate.appendPredicateList(Predicate.java:762)
         at oracle.bpel.services.workflow.repos.Predicate.<init>(Predicate.java:487)
         at com.wipro.sobay.oraclebpel.WorklistService.fetchTaskListforSearch(Unknown Source)
         at com.wipro.sobay.oraclebpel.WorklistService.getTaskCount(Unknown Source)
         at com.wipro.sobay.auditor.action.ViewTaskListAction.viewTaskList(Unknown Source)
         at com.wipro.sobay.auditor.action.ViewTaskListAction.postexecute(Unknown Source)
         at com.wipro.sobay.action.SobayBaseAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.NullPointerException
         at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:358)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:287)
         at oracle.bpel.services.common.util.AbstractJaxbUtil.unmarshal(AbstractJaxbUtil.java:128)
         at oracle.bpel.services.config.ConfigurationManager.init(ConfigurationManager.java:60)
         ... 43 more
    2009-10-23 16:04:58,031 INFO [STDOUT] <2009-10-23 16:04:58,031> <ERROR> <oracle.bpel.services.workflow> <::>
    java.lang.NullPointerException
         at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:358)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:287)
         at oracle.bpel.services.common.util.AbstractJaxbUtil.unmarshal(AbstractJaxbUtil.java:128)
         at oracle.bpel.services.config.ConfigurationManager.init(ConfigurationManager.java:60)
         at oracle.bpel.services.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:101)
         at oracle.bpel.services.config.ConfigurationManager.getProperty(ConfigurationManager.java:119)
         at oracle.bpel.services.config.ConfigurationManager.getBooleanProperty(ConfigurationManager.java:170)
         at oracle.bpel.services.common.exception.ServicesException.<clinit>(ServicesException.java:61)
         at oracle.bpel.services.config.ConfigurationManager.init(ConfigurationManager.java:79)
         at oracle.bpel.services.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:101)
         at oracle.bpel.services.config.ConfigurationManager.getProperty(ConfigurationManager.java:119)
         at oracle.bpel.services.config.ConfigurationManager.getProperty(ConfigurationManager.java:141)
         at oracle.bpel.services.config.ConfigurationManager.getStringProperty(ConfigurationManager.java:187)
         at oracle.bpel.services.workflow.task.impl.WorkflowUtil.<clinit>(WorkflowUtil.java:127)
         at oracle.bpel.services.workflow.repos.Predicate.isUserColumnAndCaseAgnostic(Predicate.java:726)
         at oracle.bpel.services.workflow.repos.Predicate.appendPredicateList(Predicate.java:780)
         at oracle.bpel.services.workflow.repos.Predicate.appendPredicateList(Predicate.java:762)
         at oracle.bpel.services.workflow.repos.Predicate.<init>(Predicate.java:487)
         at com.wipro.sobay.oraclebpel.WorklistService.fetchTaskListforSearch(Unknown Source)
         at com.wipro.sobay.oraclebpel.WorklistService.getTaskCount(Unknown Source)
         at com.wipro.sobay.auditor.action.ViewTaskListAction.viewTaskList(Unknown Source)
         at com.wipro.sobay.auditor.action.ViewTaskListAction.postexecute(Unknown Source)
         at com.wipro.sobay.action.SobayBaseAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
         at java.lang.Thread.run(Thread.java:595)
    Thanks,
    VENKAT R

    Hi.
    Actually, this exception occurs when I try to get the list of task from BPEL using my application built in java (JBOSS server).
    I could able to open the wf_config.xml and wf_client_config.xml file from browser without having any error.
    Thanks,
    VENKAT R

  • XML doesnt gets validated because closed element

    Hi,
    I have a working map which looks like below:
    My question is about the party part. What i do i check for every GLN value in the source is the value is bigger than zero. If that is true then map the value to the gln in the destination element AND add a qualifer value which is hardcoded in the value mapping
    functoids.  
    Everything is working fine but the end xml doesnt get validated because of the next reason:
    error btm1046: Output validation error: The element 'party' has incomplete content. List of possible elements expected: 'qual'.
    I think it has to do with the closed party tag which is caused by one of the fields in the source that has a value 0. 
    How can i fix this issue so that my xml gets validated.

    Hi,
    Please check the 'qual' field in your destination/output schema is a mandatory field. The error you are receiving is because in the output the last party tag is empty wherein it is expecting the element tag 'qual' to be present. Hence, failing in the validation.
    Check if you can set that element 'qual' non-mandatory.
    Rachit
    Please mark the post answered your question as answer, and mark other helpful posts as helpful, it'll help other users who are visiting your thread for the similar problem

  • Setup.xml doesnt exist problem

    Hi,
    I installed java-tools-bundle-update5-windows.exe (167MB download, includes Netbeans and glassfish).
    The server was installed to: C:\Program Files\Java\AppServer
    in command prompt, I do the following:
    C:\Program Files\Java\AppServer>lib\ant\bin\ant -f setup.xml
    and the message is displayed:
    Buildfile: setup.xml does not exist!
    Build failed
    After observing, there is no setup.xml file in AppServer folder. Where am I supposed to run that command?
    Please help

    bump...

  • XML processing conform to Certification of Third-Party XI-Adapters

    We are developing a XI-Adapter which needs xml processing. Actually we use some xml tools to process xml document, but we read in the document named  NW_XI_AF_certification_catalog_2.0.pdf that some requirement are not met, such as
    1. If the adapter must be able to parse XML documents, do you use the SAP J2EE XML parser libraries?
    the answer is no, we use jdom and other ways to handle xml.
    QA1: Is it a must and only way to use SAP J2EE XML parser libraries if want to pass the certification
    QA2: The topic named "Using DOM4J in XI - A More Sophisticated Option for XML Processing than SAP XML Toolkit" available at /people/amjad-ali.khoja/blog/2006/02/07/using-dom4j-in-xi--a-more-sophisticated-option-for-xml-processing-than-sap-xml-toolkit
    If do as the passage shows, will the adapter pass the certification
    QA3: Now we package all the tools we use in the sda package and deploy on the SDM, and it works too, what is the difference between package the util tools for process xml(*.jar) in sda and copy them to the corresponding j2ee dir and bin dir as shown in the passage listed
    Message was edited by: mints yang
    Message was edited by: mints yang

    I think an SAP man should answer here, but my common sense and SAP knowledge suggests me:
    A1: yes, evidently
    A2: the fact that DOM4J is quoted in a weblog doesn't mean it's officialy supported by SAP, it's  just an option, just like Apache Xerces and others. You can use them in interface dev, it's up to you, but an Adapter is a completly different story: SAP wants to make sure it has full control over a Certified Adapter, and the only way to do that is to have full control on the additional libraries that this Adapter uses. SAP can have this control on SAP XML Toolkit, but not on DOM4J or Xerces, obviously.
    A3: no difference, except that logically and pragmatically is much more convenient to package and deploy everyhting your stuff needs in order to work properly.
    Regards,
    Alex

  • XML doesnt read

    Hi there,
    Im having a problem with xml, i have a xml file and the xml reader from "samms tech urself java in 21 days" example, when i compile and run it, it tells me that it never found any tags.
    Please help me
    Thanks
    Rob

    Please post your code here!
    Let's try to fix it!

  • Non conforming XML dont throw exceptions..

    I have been observing this error in ESB flow,
    If the XML doesnt abide by XSDrules of an input node, the flow is still successful and the ESB Control console shows a green flow, but the data is not stored in DB or Queue. Ex. if allottee max length is 2 in XSD and if you pass aaa for an allottee, it is an error never caught.
    How to capture such errors when a XML file doesnt conform to the define XSD.
    Thanks,
    -vena

    Hi.
    You need to check the "Validate Payload at Runtime" in this case. It is located in the ESB Console->Your Routing Service->Definition tab->Operation Defails.
    I've heard of some issues regarding this validation. If you check the option and it still does not work properly, you can try to apply the latest patchset.
    Denis

  • How to read an xml database using xsd file in labview

    I have Labview 8.5. I have an xml file (Database) that contains data from sensors. The data doesnt conform to the LabView's xml schema we have our own schema for the data. is there a way to extract the  digitized waveform data from this xml file by using our own xsd file?
    Regards
    Shoaib

    I am attaching the xsd file here since I am not sure if by attaching the actual 3MB XML file i will be giving away any info that im not supposed to.Please rename the attachement to fmd.xsd
    All i'm looking for is to somehow get the data defined by the following
      <xs:complexType
    name="T_sample">
      <xs:attribute name="num" type="xs:int" use="required"
    />
      <xs:attribute name="value" type="xs:int"
    use="required" />
      <xs:attribute name="value_mv" type="xs:float"
    use="required" />
      </xs:complexType>
    Attachments:
    fmd.txt ‏24 KB

  • Anyone know how to output an XML file from ABAP to a non sapgui location?

    I have a program that creates XML and then outputs a file via CALL METHOD cl_gui_frontend_services=>gui_download. But now I want to execute the program in background mode and therefore I need to be able to output that XML to a NON sapgui file location. Current code creates the XML to an internal table which is binary then the gui_download method converts that to output XML. .  Does anyone know how I can change the code to either a) output the XML to an internal table which can be output via, say, a TRANSFER command..or, b) output the created binary table of XML to a NON sapgui file location?
    Excerpts from current code are as follows:
    first the XML is created (to the binary file)
          Creating a ixml factory
      l_ixml = cl_ixml=>create( ).
          Creating the dom object model
      l_document = l_ixml->create_document( ).
          Fill root node with value XML
      l_element_xml  = l_document->create_simple_element(
                  name = 'XML'
                  parent = l_document ).
          Create tag 'HEADER' as child of 'XML'
      l_element_header  = l_document->create_simple_element(
                  name = 'HEADER'
                  parent = l_element_xml  ).
    header information about the file and general data about the fleet follows
      l_value = c_fleet_import.
      l_element_dummy  = l_document->create_simple_element(
                name = 'TYPE'
                value = l_value
                parent = l_element_header ).
    etc.......
    then the xml is connected to the stream factory and rendered
      Creating a stream factory
      l_streamfactory = l_ixml->create_stream_factory( ).
      Connect internal XML table to stream factory
      l_ostream = l_streamfactory->create_ostream_itable( table = l_xml_table ).
      Rendering the document
      l_renderer = l_ixml->create_renderer( ostream  = l_ostream
                                            document = l_document ).
      l_rc = l_renderer->render( ).
      Saving the XML document
      l_xml_size = l_ostream->get_num_written_raw( ).
    and then output to the file
      IF sy-subrc = 0.
        CALL METHOD cl_gui_frontend_services=>gui_download
           EXPORTING
             bin_filesize = l_xml_size
            filename     = 'g:\sapdms\BSCC-DEV\EFPAC XML Files\ALL.xml'
           filename     = '/TRICK/727/OUT/ZEFP/EFPAC.XML' "doesnt work with sap gui
             filetype     = 'BIN'
           CHANGING
             data_tab     = l_xml_table
           EXCEPTIONS
             OTHERS       = 24.
    as implied by the comments the method above will successfully output the XML file to the g:drive but will not output to /TRICK/ location, which is where I need it to go in a background mode run.
    This is a problem which has defeated all our local expertise and I would appreciate any help given... Barry Jones

    Try this code below:
    data  l_xml_table2  type table of xml_line with header line.
    W_filename - This is a Path.
      if w_filename(02) = '
        open dataset w_filename for output in binary mode.
        if sy-subrc = 0.
          l_xml_table2[] = l_xml_table[].
          loop at l_xml_table2.
            transfer l_xml_table2 to w_filename.
          endloop.
        endif.
        close dataset w_filename.
      else.
        call method cl_gui_frontend_services=>gui_download
          exporting
            bin_filesize = l_xml_size
            filename     = w_filename
            filetype     = 'BIN'
          changing
            data_tab     = l_xml_table
          exceptions
            others       = 24.
        if sy-subrc <> 0.
          message id sy-msgid type sy-msgty number sy-msgno
                     with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        endif.

  • Creating datetime in XML format from ABAP

    Hello All:
         I have a ABAP program that creates an XML file and everything is fine. I just need one date field in XML to conform to W3CC standard (EX: 2006-12-01T10:53:05.2170000). I need datetime in the format "2006-12-01T10:53:05.2170000". How do I acheive this in ABAP?
    Thanks.
    Mithun

    That seems to be easy:
    DATA:
      lv_timestamp  TYPE timestampl,
      lv_xml_date   TYPE string.
    GET TIME STAMP FIELD lv_timestamp.
    CONCATENATE lv_timestamp+0(4)
                lv_timestamp+4(2)
                lv_timestamp+6(2)
      INTO lv_xml_date
      SEPARATED BY '-'.
    CONCATENATE lv_xml_date
                'T'
      INTO lv_xml_date.
    CONCATENATE lv_timestamp+8(2)
                lv_timestamp+10(2)
                lv_timestamp+12(2)
      INTO lv_xml_date+12(8)
      SEPARATED by ':'.
    CONCATENATE lv_xml_date
                lv_timestamp+5(7)
      INTO lv_timestamp
      SEPARATED BY '.'.
    Reward points, if reply is applicable
    Edited by: Mike Schernbeck on Jan 30, 2008 9:24 PM

  • Validating a xml document via dtd or xml schema

    hi.
    i am trying to validate a xml document's structure via dtd or xml schema. unfortunately i dont have a clue how to do this. although i read some documents about it i didnt find a way to it yet.
    i am using dom4j to build a org.dom4j.Document from a String.
    my expectations were like this:
    - read data into string
    - create org.dom4j.Document from a string
    - after successfully creating the document calling document.validate(xmlSchema) throwing a ParseException (or something like this when the xml doesnt meet the requirements given by the schema)
    please help!

    Class org.dom4j.Document does not have a validate() method.

  • How to send incoming XML as mail-attachment

    Hi Experts,
    I have the following scenario: an incoming XML-file should be send as attachment of a mail. Now, I have defined incoming message with the structure of the xml-message and outgoing message as mail-package. In the message mapping I fill the nessesary mail-fields. In my receiver comm.channel (mailadapter) I checked "Use mail package" and "Keep attachment".
    Result is that the mail is created and send ok, but without attachment....what am I doing wrong here?
    Regards,
    William

    Hi JWD,
    You should configure the mail adapter with 'use the mail adpater' and 'keep attachments'.
    Create an XML file conform the XML structure provide by SAP
    The mail package should look like this:
    <?xml version="1.0" encoding="utf-8"?>
    <ns:MT_Mail_Sent xmlns:xi="http://sap.com/xi/XI/Mail/30">
    <xi:Mail>
    <Subject>Item</Subject>
    <From>MAIL ADDRESS</From>
    <To>MAIL ADRESS</To>
    <Content_Type>multipart/mixed; boundary="AaBb--984dfgeSSd3532"</Content_Type>
    <Content_Disposition>attachment</Content_Disposition>
    <Content>
    AaBb984dfgeSSd3532
    Content-Type: text/plain
    this is sample data.
    AaBb984dfgeSSd3532
    Content-Type: text/plain;name="CSV_data.csv"
    Order number;Item number;description<xsl:text> </xsl:text>
    <xsl:for-each select="Article_line">
    <xsl:value-of select="Ord_nmbr"/>;<xsl:value-of select="Item_nmbr"/>;<xsl:value-of select="Description<xsl:text>
    </xsl:text></xsl:for-each>
    AaBb984dfgeSSd3532
    Content-Type: text/plain;name="TXT_data.txt"
    Order number;Item number;description<xsl:text> </xsl:text>
    <xsl:for-each select="Article_line">
    <xsl:value-of select="Ord_nmbr"/>;<xsl:value-of select="Item_nmbr"/>;<xsl:value-of select="Description<xsl:text> </xsl:text></xsl:for-each>
    AaBb984dfgeSSd3532
    </Content>
    </xi:Mail>
    </ns:MT_Mail_Sent>
    In the above example you should have some content and 2 attachments (1 csv file and 1 txt file).
    After each break (AaBb984dfgeSSd3532) specify again the 'Content-Type'.
    *When you want to send a message payload as described, you have to set in the mail receiver channel the parameter Content Encoding to None and uncheck Keep Attachments.
    The last boundary AaBb984dfgeSSd3532 should be omitted, as the mail adapter sets that border itself (tested with SP16)*
    Reward points if this helps
    Regards
    Pragathi.

  • Open XML file in XML editor with certain XPath highlighted

    Hi,
    I have wrtten an XML compraison tool which produces an HTML report of all differences and shows the xpaths where there is a mismatch. I want the user to be able to click the xpath (like hyperlink) and open the XML file using IE or any opensource XML editor (xerlin?) such that the xpath node is the current highlighted node on the screen. That way the user can right away seee where the mismatch is. As a next step I wanted to open both the control and the test files side by side with both xpaths highlighted.
    Any idea how I can approach the problem? Is there any open osurce software I can leverage and integrate my application,
    Thanks,
    Abhijit

    This code of yours should work.
    <% if display_url is not initial. %>
    <script language="Javascript">
    url = "<%=display_url%>";
    window.open(url, "Zusatz", "width=400, height=400");
    </script>
    <% endif. %>
    what happens, it doesnt open new window at all or new window is opened but xml doesnt show up?
    Regards
    Raja

  • Validating XML stored in CLOB without exceptions for malformed XML

    Hello,
    I have a CLOB column that should contain an XML which conforms to a registered XSD schema. However, there might also be cases, in which the CLOB content violates the XSD or is not even wellformed XML at all.  Now I am trying to find a way to either
    identify all records, for which the CLOB contains well-formed XML that validates against my schema (find all "good" records) , or
    find all the other records (those with either no XML at all, malformed XML, or XML that does not validate against the XSD) (find all "exceptions")
    The problem is that all XML-validation methods I know of (e.g. isXmlValid or XmlType.isSchemaValid)  require an XmlType instance, and that records, for which no proper XmlType can be constructed from the CLOB, because the CLOB does not contain well-formed XML, will cause an exception, rather than just returning false or NULL or something else I could filter out.
    Is there a way to do something like
    SELECT * FROM MYTABLE where <MY_XML_COL is wellformed XML> and <MY_XML_COL validates against 'blabla.xsd'>
    without getting an ORA-31011 or whatever other kind of exception as soon as there is a row that does not contain proper XML?
    Thank you...

    So here is my example - this will be quiet a long post now...
    First, I create the table with the CLOBs
    CREATE TABLE ZZZ_MINITEST_CLOB (
      ID NUMBER(10,0) NOT NULL ENABLE,
      XML_DOC CLOB,
      REMARKS VARCHAR2(1000),
      CONSTRAINT PK_ZZZ_MINITEST_CLOB PRIMARY KEY (ID)
    ) NOLOGGING;
    Then I insert some examples
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    10,
    '<minitest_root>
      <l2Node>
      <l2Num>1</l2Num>
      <l2Name>one.one</l2Name>
      </l2Node>
      <minitestId>1</minitestId>
      <minitestName>One</minitestName>
    </minitest_root>',
    'Basic valid example');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    20,
    '<minitest_root>
      <l2Node>
      <l2Num>1</l2Num>
      <l2Name>two.one</l2Name>
      </l2Node>
      <minitestId>2</minitestId>
      <!-- minitestName element is missing -->
    </minitest_root>',
    'Invalid - minitestName element is missing');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    30,
    '<minitest_root>
      <l2Node>
      <l2Num>1</l2Num>
      <l2Name>three.one</l2Name>
      </l2Node>
      <!-- minitestName and minitestId are switched -->
      <minitestName>Three</minitestName>
      <minitestId>3</minitestId>
    </minitest_root>',
    'Invalid - minitestName and minitestId are switched');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    40,
    '<minitest_root>
      <l2Node>
      <l2Num>1</l2Num>
      <l2Name>four.one</l2Name>
      </l2Node>
      <l2Node>
      <l2Num>2</l2Num>
      <l2Name>four.two</l2Name>
      </l2Node>
      <l2Node>
      <l2Num>3</l2Num>
      <l2Name>four.three</l2Name>
      </l2Node>
      <minitestId>4</minitestId>
      <minitestName>Four</minitestName>
    </minitest_root>',
    'Valid - multiple l2Node elements');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    50,
    '<minitest_root>
      <l2Node>
      <l2Num>1</l2Num>
      <l2Name>five.one</l2Name>
      </l2Node>
      <l2Node>
      <l2Num>2</l2Num>
      <l2Name>five.two</l2Name>
      </l2Node>
      <minitestId>4</minitestId>
      <minitestName>Five</minitestName>
      <!-- another l2Node node, but too far down -->
      <l2Node>
      <l2Num>3</l2Num>
      <l2Name>five.three</l2Name>
      </l2Node>
    </minitest_root>',
    'Invalid - another l2Node node, but too far down');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    60,
    'something that is not even xml',
    'Invalid - something that is not even xml');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    70,
    NULL,
    'Invalid - good old NULL');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    80,
    '<minitest_root>
      <l2Node>
      <l2Num>1</l2Num>
      <l2Name>
      <unexpected_node>
      this one should not be here!
      </unexpected_node>
      </l2Name>
      </l2Node>
      <minitestId>8</minitestId>
      <minitestName>Eight</minitestName>
    </minitest_root>',
    'Invalid - unexpected addl node');
    INSERT INTO ZZZ_MINITEST_CLOB VALUES (
    90,
    '<something> that has tags but is no xml </either>',
    'Invalid - something that has tags but is no xml either');
    COMMIT;
    Next I register the XSD...
    BEGIN
    DBMS_XMLSCHEMA.REGISTERSCHEMA(
      'http://localhost/minitest.xsd',
      '<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:oraxdb="http://xmlns.oracle.com/xdb" oraxdb:storeVarrayAsTable="true" oraxdb:schemaURL="http://localhost/minitest.xsd">
      <xs:element name="minitest_root" oraxdb:SQLName="MINITEST_ROOT" oraxdb:SQLType="MINITEST_TYPE" oraxdb:defaultTable="" oraxdb:tableProps="NOLOGGING" oraxdb:maintainDOM="false">
        <xs:complexType oraxdb:SQLType="MINITEST_TYPE" oraxdb:maintainDOM="false">
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="l2Node" oraxdb:SQLName="L2_NODE" oraxdb:SQLType="L2_NODE_TYPE" oraxdb:SQLCollType="L2_NODE_COLL" oraxdb:maintainDOM="false"/>
            <xs:element ref="minitestId" oraxdb:SQLName="MINITEST_ID" oraxdb:SQLType="NUMBER" oraxdb:maintainDOM="false"/>
            <xs:element ref="minitestName" oraxdb:SQLName="MINITEST_NAME" oraxdb:SQLType="VARCHAR2" oraxdb:maintainDOM="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="l2Node" oraxdb:SQLName="L2_NODE" oraxdb:SQLType="L2_NODE_TYPE" oraxdb:defaultTable="" oraxdb:tableProps="TABLESPACE CATALOG NOLOGGING" oraxdb:maintainDOM="false">
        <xs:complexType oraxdb:SQLType="L2_NODE_TYPE" oraxdb:maintainDOM="false">
          <xs:sequence>
            <xs:element ref="l2Num" oraxdb:SQLName="L2_NUM" oraxdb:SQLType="NUMBER" oraxdb:maintainDOM="false"/>
            <xs:element ref="l2Name" oraxdb:SQLName="L2_NAME" oraxdb:SQLType="VARCHAR2" oraxdb:maintainDOM="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="l2Num" type="number10_0Type" oraxdb:SQLName="L2_NUM" oraxdb:SQLType="NUMBER" oraxdb:maintainDOM="false" />
      <xs:element name="l2Name" type="varchar100Type" oraxdb:SQLName="L2_NAME" oraxdb:SQLType="VARCHAR2" oraxdb:maintainDOM="false" />
      <xs:element name="minitestId" type="number10_0Type" oraxdb:SQLName="MINITEST_ID" oraxdb:SQLType="NUMBER" oraxdb:maintainDOM="false" />
      <xs:element name="minitestName" type="varchar100Type" oraxdb:SQLName="MINITEST_NAME" oraxdb:SQLType="VARCHAR2" oraxdb:maintainDOM="false" />
      <xs:simpleType name="varchar100Type">
        <xs:restriction base="xs:string">
          <xs:maxLength value="100"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="number10_0Type">
        <xs:restriction base="xs:integer">
          <xs:totalDigits value="10"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:schema>',
      GENTABLES=>FALSE
    END;
    And then I create my XML tables - four different ones for four different test cases. I am trying unstructured binary XML and strucured OR-based XML, each with and without a trigger.
    One with structured OR storage and no trigger
    CREATE TABLE ZZZ_MINITEST_ORXML (
      ID NUMBER(10,0) NOT NULL ENABLE,
      XML_CONTENT XMLTYPE,
      CONSTRAINT PK_ZZZ_MINITEST_ORXML PRIMARY KEY (ID)
    ) NOLOGGING
    VARRAY "XML_CONTENT"."XMLDATA"."L2_NODE" STORE AS TABLE "ZZZ_OR_L2_NODE" (NOLOGGING) RETURN AS LOCATOR
    XMLTYPE XML_CONTENT STORE AS OBJECT RELATIONAL XMLSCHEMA "http://localhost/minitest.xsd" ELEMENT "minitest_root";
    One with structured OR storage which will also have a trigger added further down
    CREATE TABLE ZZZ_MINITEST_ORXML_TRGR (
      ID NUMBER(10,0) NOT NULL ENABLE,
      XML_CONTENT XMLTYPE,
      CONSTRAINT PK_ZZZ_MINITEST_ORXML_TRGR PRIMARY KEY (ID)
    ) NOLOGGING
    VARRAY "XML_CONTENT"."XMLDATA"."L2_NODE" STORE AS TABLE "ZZZ_OR_L2_NODE_TRGR" (NOLOGGING) RETURN AS LOCATOR
    XMLTYPE XML_CONTENT STORE AS OBJECT RELATIONAL XMLSCHEMA "http://localhost/minitest.xsd" ELEMENT "minitest_root";
    One with unstructured binary XML in a SECUREFILE, no trigger
    CREATE TABLE ZZZ_MINITEST_BINXML_TRGR (
      ID NUMBER(10,0) NOT NULL ENABLE,
      XML_CONTENT XMLTYPE,
      CONSTRAINT PK_ZZZ_MINITEST_BINXML_TRGR PRIMARY KEY (ID)
    ) NOLOGGING
    XMLTYPE COLUMN XML_CONTENT STORE AS SECUREFILE BINARY XML
      (NOCOMPRESS NOCACHE NOLOGGING KEEP_DUPLICATES);
    One with unstructured binary XML in a SECUREFILE, which will also have a trigger
    CREATE TABLE ZZZ_MINITEST_BINXML (
      ID NUMBER(10,0) NOT NULL ENABLE,
      XML_CONTENT XMLTYPE,
      CONSTRAINT PK_ZZZ_MINITEST_BINXML PRIMARY KEY (ID)
    ) NOLOGGING
    XMLTYPE COLUMN XML_CONTENT STORE AS SECUREFILE BINARY XML
      (NOCOMPRESS NOCACHE NOLOGGING KEEP_DUPLICATES);
    Then I create the error logging tables
    begin
    DBMS_ERRLOG.CREATE_ERROR_LOG ('ZZZ_MINITEST_BINXML', 'ZZZ_MINITEST_BINXML_E', NULL, NULL, TRUE);
    DBMS_ERRLOG.CREATE_ERROR_LOG ('ZZZ_MINITEST_BINXML_TRGR', 'ZZZ_MINITEST_BINXML_TRGR_E', NULL, NULL, TRUE);
    DBMS_ERRLOG.CREATE_ERROR_LOG ('ZZZ_MINITEST_ORXML', 'ZZZ_MINITEST_ORXML_E', NULL, NULL, TRUE);
    DBMS_ERRLOG.CREATE_ERROR_LOG ('ZZZ_MINITEST_ORXML_TRGR', 'ZZZ_MINITEST_ORXML_TRGR_E', NULL, NULL, TRUE);
    END;
    Now the two triggers
    create or replace trigger TRG_ZZZ_MINITEST_BINXML
    BEFORE UPDATE OR INSERT ON ZZZ_MINITEST_BINXML_TRGR
    REFERENCING NEW AS NEW
    for each row
    BEGIN
      :NEW.XML_CONTENT := :NEW.XML_CONTENT.createSchemaBasedXML('http://localhost/minitest.xsd');
      :NEW.XML_CONTENT.SCHEMAVALIDATE();
    END TRG_ZZZ_MINITEST_BINXML;
    CREATE OR REPLACE TRIGGER TRG_ZZZ_MINITEST_ORXML
    BEFORE UPDATE OR INSERT ON ZZZ_MINITEST_ORXML_TRGR
    REFERENCING NEW AS NEW
    for each row
    BEGIN
      :NEW.XML_CONTENT := :NEW.XML_CONTENT.createSchemaBasedXML('http://localhost/minitest.xsd');
      :NEW.XML_CONTENT.SCHEMAVALIDATE();
    END TRG_ZZZ_MINITEST_ORXML;
    I also tried to just validate the XML using queries such as the below, since validating all without the WHERE also caused exception and abortion:
    SELECT ID, DECODE(XMLISVALID(XMLTYPE(XML_DOC), 'http://localhost/minitest.xsd'), 1, 'Y', 0, 'N', '?') VALID
    FROM ZZZ_MINITEST_CLOB WHERE ID=90;
    The results are in column "VALID" in the below tables
    I tried inserting all records from ZZZ_MINITEST_CLOB into the four test tables at once using a query such as
    INSERT INTO ZZZ_MINITEST_ORXML_TRGR
    SELECT ID, XMLPARSE(DOCUMENT XML_DOC WELLFORMED) FROM ZZZ_MINITEST_CLOB
    LOG ERRORS INTO ZZZ_MINITEST_ORXML_TRGR_E REJECT LIMIT UNLIMITED;
    I also tried different versions of creating the XML in the SELECT portion:
    XMLPARSE(DOCUMENT XML_DOC WELLFORMED)
    XMLPARSE(DOCUMENT XML_DOC WELLFORMED)
    XMLTYPE(XML_DOC)
    XMLTYPE(XMLDOC, 'http://localhost/minitest.xsd', 0, 1)
    Almost all combinations of the four test tables with the four ways to instantiate the XML caused exceptions and query abortion despite the LOG ERRORS INTO clause.
    In order to find the exact problems, I started inserting records one by one using queries like
    INSERT INTO ZZZ_MINITEST_ORXML
    SELECT ID, XMLPARSE(DOCUMENT XML_DOC) FROM ZZZ_MINITEST_CLOB WHERE ID=10
    LOG ERRORS INTO ZZZ_MINITEST_ORXML_E REJECT LIMIT UNLIMITED;
    or
    INSERT INTO ZZZ_MINITEST_BINXML_TRGR
    SELECT ID, XMLTYPE(XMLDOC, 'http://localhost/minitest.xsd', 0, 1) FROM ZZZ_MINITEST_CLOB WHERE ID=20
    LOG ERRORS INTO ZZZ_MINITEST_BINXML_TRGR_E REJECT LIMIT UNLIMITED;
    I captured the results of each in the below four tables. "1" and "0" are number of rows inserted. 0 means there was no record inserted and instead, there was an error logged in the ERROR LOGGING table.
    The ORA-????? exception numbers mean that this error actually caused the INSERT to fail and abort rather than just being logged in the LOGGING TABLE.These are the most critical cases for me. Why do these exceptions "bubble up" forcing the query to be aborted rather than being logged in the error log as well???
    This table is for INSERT of XMLs using XMLTYPE(XML_DOC)
    Test case
    VALID
    Binary XML,
    no trigger
    Binary XML,
    trigger
    OR XML,
    no trigger
    OR XML,
    trigger
    10
    Good
    Y
    1
    1
    1
    1
    20
    no name
    N
    1
    0
    1
    0
    30
    switched tags
    N
    1
    1
    1
    1
    40
    Good
    Y
    1
    1
    1
    1
    50
    L2 down
    N
    1
    1
    1
    1
    60
    no xml
    EX
    ORA-31011
    ORA-31011
    ORA-31011
    ORA-31011
    70
    NULL
    EX
    ORA-06502
    ORA-06502
    ORA-06502
    ORA-06502
    80
    addl. Node
    N
    1
    0
    ORA-31187
    ORA-31187
    90
    crappy xml
    EX
    ORA-31011
    ORA-31011
    ORA-31011
    ORA-31011
    This table is for INSERT of XMLs using XMLTYPE(XML_DOC, 'http://localhost/minitest.xsd', 0, 1)
    Test case
    VALID
    Binary XML,
    no trigger
    Binary XML,
    trigger
    OR XML,
    no trigger
    OR XML,
    trigger
    10
    Good
    Y
    1
    1
    1
    1
    20
    no name
    N
    1
    0
    1
    0
    30
    switched tags
    N
    1
    1
    1
    1
    40
    Good
    Y
    1
    1
    1
    1
    50
    L2 down
    N
    1
    1
    1
    1
    60
    no xml
    EX
    ORA-31043
    ORA-31043
    ORA-31043
    ORA-31043
    70
    NULL
    EX
    ORA-06502
    ORA-06502
    ORA-06502
    ORA-06502
    80
    addl. Node
    N
    1
    0
    ORA-31187
    ORA-31187
    90
    crappy xml
    EX
    ORA-31043
    ORA-31043
    ORA-31043
    ORA-31043
    This table is for INSERT of XMLs using XMLPARSE(DOCUMENT XML_DOC WELLFORMED)
    Test case
    VALID
    Binary XML,
    no trigger
    Binary XML,
    trigger
    OR XML,
    no trigger
    OR XML,
    trigger
    10
    Good
    Y
    1
    1
    1
    1
    20
    no name
    N
    1
    0
    1
    0
    30
    switched tags
    N
    1
    1
    1
    1
    40
    Good
    Y
    1
    1
    1
    1
    50
    L2 down
    N
    1
    1
    1
    1
    60
    no xml
    ORA-31061
    0
    ORA-31011
    ORA-31011
    70
    NULL
    1
    0
    1
    0
    80
    addl. Node
    N
    0
    0
    ORA-31187
    ORA-31187
    90
    crappy xml
    ORA-31061
    0
    ORA-30937
    ORA-30937
    This table is for INSERT of XMLs using XMLPARSE(DOCUMENT XML_DOC) (same as above, but without "WELLFORMED")
    Test case
    VALID
    Binary XML,
    no trigger
    Binary XML,
    trigger
    OR XML,
    no trigger
    OR XML,
    trigger
    10
    Good
    Y
    1
    1
    1
    1
    20
    no name
    N
    1
    0
    1
    0
    30
    switched tags
    N
    1
    1
    1
    1
    40
    Good
    Y
    1
    1
    1
    1
    50
    L2 down
    N
    1
    1
    1
    1
    60
    no xml
    ORA-31011
    ORA-31011
    ORA-31011
    ORA-31011
    70
    NULL
    1
    0
    1
    0
    80
    addl. Node
    N
    1
    0
    ORA-31187
    ORA-31187
    90
    crappy xml
    ORA-31011
    ORA-31011
    ORA-31011
    ORA-31011
    As you can see, different ways to instantiate the XML which is being inserted will cause different results for the most critical cases (60, 80 and 90). One will go through with an error logged in the logging table and no record inserted, others cause exceptions. Also, using XMLPARSE with or without WELLFORMED causes different ORA numbers for record 90...
    It seems like the only way to not get any exceptions for my test records is inserting XMLs that were created using XMLPARSE (DOCUMENT ... WELLFORMED) into the trigger-protected binary XML table. However, that causes me to miss record number 80, which is one that I really need, because it is well formed and I could use XSLTs to fix the XML by removing the extra tags, as long as I know which ones those are.

  • How to call JSP that outputs XML without HTTP request

    It should be a simple solution but I can't seem to find a concise recommendation anywhere. We are building a B2B subsytem for our app and we need to send XML to our vendor. I'm evaluating the possibility of using JSPs for that and everything looks good until the time you actually want to invoke it. It's obvious how to code the JSP itself, but I'm looking for an efficient way to call it to generate XML. We do not have an HTTP request or a servlet, the communication is on the EJB level. So I can't get a RequestDispatcher for example, and we don�t have HttpServletRequest/HttpServletResponse either. It is NOT a servlet or JSP calling another JSP, it's a regular Java class or EJB.
    Ideally, I would rather bypass the whole HTTP infrastructure and just use JSP as a formatter. So it boils to a question of how to invoke it and how to pass the parameters without HTTP session or request. One of the alternatives we are reviewing is using XSP but we would prefer JSPs if we can figure out how to call it efficiently. HttpUrlConnection is not a good option, we'd like a direct call.
    Any suggestions will be greatly appreciated.

    Thanks for the response. Let me clarify the requirements for the question. The way we are supposed to send XML to the vendor is via CORBA (don't ask me why:-) where the only parameter essentially is a string containing the XML document. So the quesiton is not how to send it to the vendor, but how to format our JavaBeans into XML.
    We can't use JAXB because it doesn't support schema. We tried a few libraries out there but they stumble on our schema and we can't change it because it comes from the vendor. So it sounds like our only choice for today is to generate XML ourselves.
    The data is stored in JavaBean packet objects and that's our input. Our output should be a string with XML document conforming to the schema. Posting a request to ourselves will of course work, but that's too much unnecessary overhead. Another option is implementing HttpServletRequest and HttpServletResponse and calling service method directly. Better suggestions?

Maybe you are looking for