13 Replies Latest reply on Aug 26, 2004 4:49 PM by wwright

    Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xml jb

    wwright


      eclipse 3.1.x
      jboss 3.2.2
      jboss-ide 1.3.0

      Appologies...I am a bit green on many of these tools. But was hoping someone might help.

      I have been working through the tutorial for jboss-ide 1.3.0. (Well written with only a few questions, thanks)

      xdoclet is generating the files but not filling in the values for **/*Servlet java. ComputeServlet.java contains the @web commets as below, I believe what is suppose to happen is the xdoclet reads the Sevlet file and creates the web.xml using the values from the comment. I have double checked the Tutorial and the IDE config values. Am I suppose add the javaDoc Tags somewhere? or does xdoclet recognize these @web tags.



      -----file ComputeServlet.java --------------

      /**
      * @web.servlet name="Compute"
      * display-name="Computation Servlet"
      * description="Servlet that compute Fibonacci suite"
      *
      * @web.servlet-mapping url-pattern="/Compute"
      *
      * @web.ejb-ref name="ejb/Fibo"
      * type="Session"
      * home="tutorial.interfaces.FiboHome"
      * remote="tutorial.interfaces.Fibo"
      * description="Reference to the Fibo EJB"
      *
      * @jboss.ejb-ref-jndi ref-name="ejb/Fibo"
      * jndi-name="ejb/Fibo"
      */

      ------------------------------------------------------------

      FILE xdoclet-build.xml

      I tried to run this from the command line using the command line ANT

      >ant -f xdoclet-build.xml -property .xdoclet N4003CA

      But the environment errors were killing me. Also tried adding an but Build did not like that.


      ------------------------------------------------------

      <?xml version="1.0" encoding="UTF-8"?>







































      ---------------------------------------------------------

        • 1. Cluster Member Starvation
          wwright

          I am experiencing a situation where some members of a cluster are not getting any requests. The following is my configuration.

          OS: Solaris
          Java version: 1.3
          JBoss version: jboss_3.0.1RC1-tomcat_4.0.4

          I have 2 partitions. One called ProdEJB has only SFSB and SLSB clustering turned on. The other called ProdJNDI has only JNDI clustering turned on. At present all servers live on the same physical computer. Each server participating in the ProdJNDI partition is running HA-JNDI on a different port.

          5 or 6 servers participate in the ProdEJB partition. All of the 5 or 6 servers that participate in the ProdEJB partition also participate in the ProdJNDI partition. We refer to these servers as EJB servers.

          There is one other server which runs servlets only and no EJBs that participates in the ProdJNDI partition. The servlets in this server use ejb-ref declarations to talk to EJBs in the ProdEJB partition. Each ejb-ref points to a JNDI name in HA-JNDI on this server. We refer to this server as the web server.

          So you can see that for each EJB looked up by the web server the lookup will talk to HA-JNDI running in the web server. HA-JNDI will not find the EJB name in the global namespace or the local namespace so it will begin asking the other (EJB) servers if they have the name in their local namespace. The first EJB server it asks will have the name and will return a clustered home interface. The web server now has a reference to the clustered home of an EJB. Calls to the create methods in the home interface should be made round-robin on the 5 or 6 EJB servers. For SLSB calls to any remote method should be made round-robin on the 5 or 6 EJB servers.

          One final note is that the web server holds on to the home reference in a Service Locator object rather than looking it up each time it is needed.

          With this setup we are seeing the following behavior.
          1. With 4 or less servers every server receives calls made to create methods in the home or business methods in the remote in a more or less fair manner. Over time all servers get roughly the same number of requests.
          2. With 5 servers 1 of the servers gets starved. In other words it never gets any requests. In addition to this some other server gets about twice as many requests as the other servers. The remaining 3 servers get roughly the same number of requests.
          3. With 6 servers 2 of the servers get starved and some other server gets about twice as many requests as the other servers.

          The particular servers that get starved seems fairly random but somewhat related to the order in which I start the servers.

          I realize that this is a somewhat more complicated clustering situation than most people are using, but it is reasonable, and suits our needs. It enables us to have 1 (and later more) servers handling servlets and talking to a cluster of EJB servers. This will perform well in our environment.

          Has anyone else seen problems like this with the Round Robin algorithms? Any ideas?


          • 2. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
            wwright



            That last piece is suppose to read > tried running ant from the command line I tried putting a echo statement in the target after the fileset parm but it failed










            • 3. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
              wwright


              That last piece is suppose to read > tried running ant from the command line I tried putting a echo statement in the target after the fileset parm but it failed

              echo message="includes=${includes}"

              • 4. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                pilhuhn
                • 5. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                  wwright

                  Yes, I believe I do. using the Tutorial I entered a EJB doclet and a Web doclet.

                  The xdoclet-build.xml looks like this subst. < for < and /> for /)

                  (?xml version="1.0" encoding="UTF-8"?>
                  (project default="_generation_" name="XDoclet Generator">
                  (property file="xdoclet-build.properties"/)
                  (path id="xdoclet.classpath">
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/ejb-api.jar"/)
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jca-api.jar"/)
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jms-api.jar"/)
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jsp-api.jar"/)
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jta-api.jar"/)
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/servlet-api.jar"/)
                  (pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/sql-api.jar"/)
                  (pathelement location="bin"/)
                  (fileset dir="/c:/Apps/eclipse/plugins/org.jboss.ide.eclipse.xdoclet.core_1.3.30/">
                  (include name="*.jar"/)
                  (/fileset>
                  (/path>
                  (target depends="N400004,N4003CA" name="_generation_"/)
                  (target description="EJB" name="N400004">
                  (taskdef classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath" name="ejbdoclet"/)
                  (ejbdoclet destDir="src" ejbSpec="2.0">
                  (fileset dir="src" includes="**/*Bean.java"/)
                  (deploymentdescriptor destDir="src/META-INF"/)
                  (jboss Version="3.0" destDir="src/META-INF"/)
                  (packageSubstitution packages="ejb" substituteWith="interfaces"/)
                  (remoteinterface/)
                  (homeinterface/)
                  (localhomeinterface/)
                  (localinterface/)
                  (/ejbdoclet>
                  (/target>
                  (target description="Web" name="N4003CA">
                  (taskdef classname="xdoclet.modules.web.WebDocletTask" classpathref="xdoclet.classpath" name="webdoclet"/)
                  (webdoclet destDir="src/WEB-INF">
                  (fileset dir="src" includes="**/*Servlet.java"/)
                  (deploymentdescriptor Servletspec="2.3"/)
                  (jbosswebxml Version="3.0"/)
                  (/webdoclet>
                  (/target>
                  (/project>

                  • 6. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                    wwright
                    • 7. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                      wwright

                      The above is spitting out a web.xml skeleton document in the WEB-INF Directory. No entries etc.

                      http://www.geocities.com/wwrightjuly4/temporarypreviewfile.html?1093376593187, same as above message, with fileset image.

                      • 8. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                        wwright

                        Buildfile: C:\Data\myDev\workspace\Jboss-ide\xdoclet-build.xml
                        N400004:
                        [ejbdoclet] (XDocletMain.start 47 ) Running
                        [ejbdoclet] (XDocletMain.start 47 ) Running
                        [ejbdoclet] (XDocletMain.start 47 ) Running
                        [ejbdoclet] (XDocletMain.start 47 ) Running
                        [ejbdoclet] (XDocletMain.start 47 ) Running
                        [ejbdoclet] (XDocletMain.start 47 ) Running
                        N4003CA:
                        [webdoclet] (XDocletMain.start 47 ) Running
                        [webdoclet] Generating web.xml.
                        [webdoclet] (XDocletMain.start 47 ) Running
                        [webdoclet] (TemplateSubTask.engineStarted 794 ) Generating output 'jboss-web.xml' using template file 'jar:file:/C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.xdoclet.core_1.3.30/xdoclet-jboss-module-1.2.1.jar!/xdoclet/modules/jboss/web/resources/jboss_web_xml.xdt'.
                        _generation_:
                        BUILD SUCCESSFUL
                        Total time: 15 seconds

                        • 9. Hi, I was just wondering if there are any status updates
                          wwright

                          1

                          • 10. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                            pilhuhn

                            This sound like you have a mismatch of the root of the fileset you are using and the package structure.

                            e.g. you have
                            fileset dir=srcs/com/acme/bla
                            include foo/*.java

                            but your package says com.acme.bla.foo
                            then there is a mismatch as the fileset sees a package of foo.


                            This is a flaw in xdoclet that it does not report this mismatch (but javac doesn't as well iirc).

                            • 11. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                              wwright

                               

                              Thanks for the response.
                              
                              This is so strange, I have played with the xdoclet sample, it builds,
                              updates web.xml. I have copied the jboss-ide 1.3 /src/ <tutorial> to the
                              xdoclet samples/src/java dir
                              
                              effectively the fileset is ${samples.java.dir} includes **/*Servlet.java
                              
                              directory with no effect i have copied the xdoclet sample <test> dir to the
                              jboss-ide/src directory and it builds and shows in the web.xml file but still
                              no tutorial entries.
                              
                              --pilhuhn "mismatch of the root of the fileset" ---
                              
                              If I understand your point. I have examined the build file
                              and the directory structure along with the package names.
                              
                              where ComputeServlet.java is in tutorial/web the the package is
                              
                               package tutorial.web;
                              
                              Where SimpleServlet.java is in test/web the package is
                              
                               package test.web;
                              
                              The above reside below <src> so using the below:
                              
                              code segment target below <webdoc>:
                               filset dir=src includes=**/*Servlet.java
                              
                              The web.xml shows the SimpleServlet definition but the ComputeServlet is missing.

                              directory Structure:
                              
                               jboss-ide/src
                               /tutorial
                               /ejb, /interfaces, /web
                              (add from xdoclet/samples)
                               /test
                               /web, /dao, etc.
                              
                              
                               <path id="xdoc.class.path">
                               <pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/ejb-api.jar"/>
                               <fileset dir="${xdoc.lib.dir}">
                               <include name="*.jar"/>
                               </fileset>
                               <fileset dir="${xdoclet.root.dir}/samples/lib">
                               <include name="*.jar"/>
                               </fileset>
                               </path>
                               <echo message=" xdoc.class.path = ${xdoc.class.path}"/>
                               <target description="Web" name="webdoc">
                               <taskdef classname="xdoclet.modules.web.WebDocletTask" classpathref="xdoc.class.path" name="webdoclet"/>
                               <webdoclet destDir="src/WEB-INF" force="true" verbose="true">
                               <fileset dir="src" includes="**/*Servlet.java"/>
                               <deploymentdescriptor Servletspec="2.3"/>
                               </webdoclet>
                              


                              • 12. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                                wwright

                                If I have a fileset Mismatch as described above I do not see it...
                                I believe I understand what you are saying about the file mismatch

                                ////
                                e.g. you have
                                fileset dir=srcs/com/acme/bla
                                include foo/*.java

                                but your package says com.acme.bla.foo
                                ///

                                the fileset above would match

                                package foo; but not package com.acme.bla.foo;

                                perhaps fileset dir=srcs includes="com/acme/bla/foo/*.java"
                                or
                                fileset dir=srcs incluldes="**/*.java"

                                would work.???right


                                Because of the way ant builds this and xdoclet processes the file.


                                The following is the last portion of the Debug log from
                                (ant -d -f xdoc-build.xml webdoc) command. The two servlets are
                                SimpleServlet, and ComputeServlet...It appears to find them but I can
                                not tell much about what processing was done.

                                The SimpleServlet gets written to the web.xml but ComputeServlet does not.



                                ===================

                                Class xjavadoc.AbstractType loaded from ant loader (parentFirst)
                                Class xjavadoc.ParameterImpl loaded from ant loader (parentFirst)
                                Finding class xjavadoc.ReturnType
                                Loaded from C:\apps\jakarta\xdoclet-1.2.1\lib\xjavadoc-1.0.3.jar xjavadoc/ReturnType.class
                                Class xjavadoc.ReturnType loaded from ant loader (parentFirst)
                                Finding class test.web.SimpleServlet.VelocityServlet
                                Finding class test.web.VelocityServlet
                                Finding class java.lang.VelocityServlet
                                Class javax.naming.Context loaded from parent loader (parentFirst)
                                Class javax.naming.InitialContext loaded from parent loader (parentFirst)
                                Class javax.rmi.PortableRemoteObject loaded from parent loader (parentFirst)
                                Finding class javax.ejb.EJBObject
                                Loaded from C:\Apps\eclipse\plugins\org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30\lib\j2ee-1.3\ejb-api.jar javax/ejb/EJBObject.class
                                Class java.rmi.Remote loaded from parent loader (parentFirst)
                                Class javax.ejb.EJBObject loaded from ant loader (parentFirst)
                                Finding class javax.ejb.EJBHome
                                Loaded from C:\Apps\eclipse\plugins\org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30\lib\j2ee-1.3\ejb-api.jar javax/ejb/EJBHome.class
                                Class javax.ejb.EJBHome loaded from ant loader (parentFirst)
                                Finding class tutorial.web.ComputeServlet.HttpServlet
                                Finding class tutorial.web.HttpServlet
                                Finding class java.lang.HttpServlet
                                Class java.io.BufferedReader loaded from parent loader (parentFirst)
                                Class java.util.TreeMap loaded from parent loader (parentFirst)
                                Couldn't load Resource filter-mappings.xml
                                Couldn't load Resource listeners.xml
                                Couldn't load Resource servlets.xml
                                Class sun.reflect.MethodAccessorImpl loaded from parent loader (parentFirst)
                                Couldn't load Resource web-sec-rolerefs-{0}.xml
                                Couldn't load Resource servlet-mappings.xml
                                Couldn't load Resource mime-mappings.xml
                                Couldn't load Resource welcomefiles.xml
                                Couldn't load Resource error-pages.xml
                                Couldn't load Resource taglibs.xml
                                Couldn't load Resource web-resource-env-refs.xml
                                Couldn't load Resource ejb-resourcerefs.xml
                                Couldn't load Resource ejb-resourcerefs-{0}.xml
                                Couldn't load Resource ejb-resourcerefs-{0}.xml
                                Couldn't load Resource web-security.xml
                                Couldn't load Resource web-sec-roles.xml
                                Couldn't load Resource web-env-entries.xml
                                Couldn't load Resource web-env-entries-{0}.xml
                                Couldn't load Resource web-env-entries-{0}.xml
                                Couldn't load Resource web-ejbrefs.xml
                                Couldn't load Resource web-ejbrefs-local.xml

                                BUILD SUCCESSFUL
                                Total time: 13 seconds

                                • 13. Re: Jboss-ide 1.3.0  Tutorial. Xdoclet not generating web.xm
                                  wwright

                                  Well, I have pulled my hair out and exhausted my ideas for getting
                                  xdoclet to work with the 1.3.0 jboss-ide tutorial. I just using the merge
                                  files, for now....

                                  If anyone is interested here's the zip file my jboss-ide 1.3.0 tutorial directory
                                  and post it on a url.
                                  http://www.geocities.com/wwrightjuly4/EclipseJBoss-ide-properties.html?1093552899382

                                  Thanks to pilhuhn for his suggestions...and time.