webMethods

webMethods

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  Application Exception 999 running Phone Demo

    Posted Mon July 28, 2003 01:55 PM

    X-Application Version: 4.1.1
    Tamino Version : 4.1.4
    Platform : Win2k
    WebContainer : Tomcat 4.1.18
    JDK Version : 1.3.1_07

    Use the phone demo/test files from the Tamino directory “…/documentation/examples/phone”, create the Schema using “TelephoneSchema.tsd” and load the data “Telephone.xml” via the Tamino Schema Editor.

    Now generate and run using X-Application. Notice the generated initial screen doesn’t show any input fields. When I click on the “create” hyperlink or “search” button I get the following message:

    “Exception id: 999
    Exception Type: ApplicationException
    Stacktrace:


    XException: id = 999
    com.softwareag.xtools.xapplication.common.AssertionFailed
    ambiguous element: Telephone
    at com.softwareag.xtools.xapplication.schema.Schema.lookupElementEverywhere(Schema.java:462)
    at com.softwareag.xtools.xapplication.businessdocument.SchemaSet.lookup(SchemaSet.java:82)
    at com.softwareag.xtools.xapplication.businessdocument.BusinessDocumentWorkspace.getSchema(BusinessDocumentWorkspace.java:589)
    at com.softwareag.xtools.xapplication.businessdocument.BusinessDocumentWorkspace.getSchema(BusinessDocumentWorkspace.java:577)
    at com.softwareag.xtools.xapplication.businessdocument.BusinessDocumentWorkspace.processQuery(BusinessDocumentWorkspace.java:557)
    at com.softwareag.xtools.xapplication.businessdocument.BusinessDocumentWorkspace.xquery(BusinessDocumentWorkspace.java:196)
    at com.softwareag.xtools.xapplication.plugin.StandardWorkspacePlugin.xqueryDocuments(StandardWorkspacePlugin.java:424)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.softwareag.xtools.xapplication.plugin.Action.invoke(Action.java:147)
    at com.softwareag.xtools.xapplication.plugin.Dispatcher.execute(Dispatcher.java:153)
    at com.softwareag.xtools.xapplication.jsp.SessionContext.processWorkspaceAction(SessionContext.java:376)
    at com.softwareag.xtools.xapplication.jsp.taglib.ModuleTag.processDocumentAction(ModuleTag.java:291)
    at com.softwareag.xtools.xapplication.jsp.taglib.ModuleTag.doStartTagCore(ModuleTag.java:95)
    at com.softwareag.xtools.xapplication.jsp.JspTag.doStartTag(JspTag.java:132)
    at org.apache.jsp.browse_jsp._jspx_meth_xapp_module_0(browse_jsp.java:107)
    at org.apache.jsp.browse_jsp._jspService(browse_jsp.java:85)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.invokeNext(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:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
    at java.lang.Thread.run(Thread.java:479)”


    #webMethods
    #Tamino
    #API-Management


  • 2.  RE: Application Exception 999 running Phone Demo

    Posted Tue July 29, 2003 08:59 AM

    Hello,

    I had a look at the telephone example and the telephone.tsd file. This schema is not supported by X-Application due to the element definition of ‘telephone’.

    There are two definitions ‘telephone’: One to define the root element (doctype) of the documents, another one is nested within the element definition of ‘Address’.

    If you edit the existing tsd file and rename the second definition of ‘telephone’ in ‘phone’. Then, this problem would be solved and the generator could produce a running application.

    If you just want to try out X-Application and its generator, my propose is to use another example. That will be easier than handle the problem with duplicate element definitions.

    However, if you want to use X-Application in context with schemas containing duplicate element definitions, we could give you support for manual adaptations of the generated JSPs. The workaround in this case would be to abandon the schema support of X-Application.

    Hope, that responds your question and helps you to proceed with X-Application.

    Bye,
    Christian.


    #API-Management
    #Tamino
    #webMethods


  • 3.  RE: Application Exception 999 running Phone Demo

    Posted Wed July 30, 2003 11:38 AM

    Hi Christian.

    You were right about the embedded element “Telephone”. After removing it, the exception no longer occurs.

    The other problem still exists; can you take a look at that? Its where the generated application when it first comes up should show all the elements/attributes of the Schema as input fields. What I get is no fields, just two “Search” buttons. Also, clicking on “Create” doesn’t show any fields either, just a long string of text.

    I can send you the Schema and data if required.

    Thanks.

    KJ


    #webMethods
    #API-Management
    #Tamino


  • 4.  RE: Application Exception 999 running Phone Demo

    Posted Wed July 30, 2003 11:58 AM

    Hello,

    please send me your schema and the test data. I will try to reproduce the problem on my PC.

    Many thanks.

    Bye,
    Christian.


    #API-Management
    #webMethods
    #Tamino


  • 5.  RE: Application Exception 999 running Phone Demo

    Posted Thu July 31, 2003 11:55 AM

    Hello,

    Thanks for the schema / data file you sent me directly via mail. I have recognized that you renamed the second definition of ‘Telephone’ into ‘Telephone_Number’. I used your modified schema to create an application with X-Application’s generator.

    I had the same effect as you described within your post:


    • The search page does not contain any search field.
    • The create page contains add / remove for the content elements of the root element and contains also the links to switch between the alternatives of the entry, but there is no input field.


    So, I could reproduce the problem.

    The reason for this problem is the definition of the content fields. All element definition (EntryId, LoginName, …) look like this:

      <xs:complexType mixed = "true"></xs:complexType>



    The option ‘mixed’ means, that the content of an element could be a mixture of normal text and child elements defined for this complex type. However, the complex type is empty and there are no children the text could be mixed with.

    For the generator does not consider this situation. It does not generate an input field for an empty complex type with option mixed=‘true’.

    I fixed this problem within the java class ‘StructureBuilder.java’ that is attached to this post. Please, follow the instructions below to add the fix to your X-Application:


    • Extract the attached zip file into the directory where you extracted the X-Application zip file. In this way, the existing java source file will be replaced.
    • Open a console and change to the directory
      …\xapplication_411
    • Invoke the command ‘build quick’
    • Shut down Tomcat if necessary
    • Invoke the command ‘build1 generator’
    • Start Tomcat
    • Generate your application again:
      - Don’t define the schema just enter for
      Schema → Name : ‘TelephoneSchema’
      Schema → Doctype : ‘Telephone’
      and click the ‘Generate’ Button.


    Hope, it the fix will work also on your maschine.

    Bye,
    Christian.
    empty_mixed_20030731.zip (3.65 KB)


    #API-Management
    #Tamino
    #webMethods


  • 6.  RE: Application Exception 999 running Phone Demo

    Posted Thu July 31, 2003 12:25 PM

    Hi Christian.

    Thanks for the fix, it worked! The Search page now successfully generates and displays elements/attributes from the Schema.

    I did notice a couple of cosmetic issues and it would be useful to understand these.

    First, did you notice that the Search page shows ‘Choice n’ against each generated field. This might be appropriate for certain cases but is there an easy way to turn this off?

    Secondly, if you click on the Search button I get the first 10 documents displayed but with no information other than the document number or ino:id. Clicking on one of these correctly retrieves the document contents but also a whole bunch of unnecessary tags. Again, can this be switch off? I’ve attached a picture of this.

    Thanks again,

    KJ


    #API-Management
    #Tamino
    #webMethods


  • 7.  RE: Application Exception 999 running Phone Demo

    Posted Thu August 07, 2003 09:20 AM

    Hello,

    Yes, you can make individual adaptations for each application to change the default output of the generator. Have a look into the directory of your generated application. There you will find a file ‘structure.xml’. It contains the fields and headings to be displayed on each page. By changing its entries and regenerating the application, you can adapt the content of the JSPs.

    There is a chapter within the documentation about the structure file.

    Generator - Customization > Customizing the Structure File

    For example:
    To get rid of the choice output

    choice 0:
    
    ...
    
    choice 1:
    </pre><BR><BR>just remove the choice tag of around the element tag within the section 'search'<BR><BR><pre class="ip-ubbcode-code-pre">
    <search>
    <!-- remove the choice tags within this section -->
    ...
    </search>
    </pre><BR><BR>To modify the content of  the browse page adapt the elements of the section <BR><BR><pre class="ip-ubbcode-code-pre">
    <browse>
    <!-- add the fields to be displayed for each browse entry -->
    </browse>



    Then, enter the directory / schema / doctype of the existing application and use the regenerate option of the generator.

    Bye,
    Christian.


    #webMethods
    #Tamino
    #API-Management