5 Replies Latest reply on Jul 10, 2003 4:01 PM by qinding

    can't display jmx-console in 3.2.1 - 500 error

      Our production environment requires $JBOSS_HOME/bin to be read-only. Apparently 3.2.1 trys to compile jmx-servlet code in a temp directory that it tries to create in $JBOSS_HOME/bin. The following partial trace occurred when I tried to bring up the jmx-console:

      17:16:20,988 WARN [jbossweb] WARNING: Exception:
      Error creating temporary file
      at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:429)
      at
      ...
      at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
      Caused by: java.io.FileNotFoundException: /home/NYtree/server/Linux2.4_local/app/jboss/jboss-3.2.1/bin/files1163563149 (Read-only file system)

      Can I somehow control location of the temp directory?
      Any suggestions appreciated.

        • 1. Re: can't display jmx-console in 3.2.1 - 500 error

          You can change the jasper servlet
          to use a different directory.
          This in webdefaults.xml or web.xml
          inside jbossweb-xxx.sar


          <servlet-name>jsp</servlet-name>
          <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
          <init-param>
          <param-name>scratchdir</param-name>
          <param-value>${path.to.dir}</param-value>
          </init-param>
          ...

          I have no idea why it would be trying to create
          them in bin? Have you changed the jboss temp
          directory setting, is it correct?

          Regards,
          Adrian

          • 2. Re: can't display jmx-console in 3.2.1 - 500 error

            I did as you suggested but the problem persisted, however I uncovered the cause. I was using $JBOSS_HOME/bin/jboss_init_redhat.sh. This script changes directory to $JBOSS_HOME/bin before invoking JBOSS. I still got the same error when invoking run.sh from $JBOSS_HOME/bin. The problem goes away when I invoke run.sh from a writable directory, in my case, /tmp.

            Curiously, I did not have this problem in 3.2.0.

            Thanks for your help.
            jj

            > You can change the jasper servlet
            > to use a different directory.
            > This in webdefaults.xml or web.xml
            > inside jbossweb-xxx.sar
            >
            >
            > <servlet-name>jsp</servlet-name>
            >
            >
            >
            > <servlet-class>org.apache.jasper.servlet.JspServlet</
            &gt; ervlet-class>
            > <init-param>
            > <param-name>scratchdir</param-name>
            > <param-value>${path.to.dir}</param-value>
            > </init-param>
            > ...
            >
            > I have no idea why it would be trying to create
            > them in bin? Have you changed the jboss temp
            > directory setting, is it correct?
            >
            > Regards,
            > Adrian

            • 3. Re: can't display jmx-console in 3.2.1 - 500 error
              qinding

              I just downloaded installed the jboss-3.2.1_Tomcat 4.1.24 on window xp. I have my java_home setup. Without modifying anything, I ran jboss. It seems started ok. However, when I go to browser and type in http://localhost:8080/jmx-console, I got "org.apache.jasper.JasperException: Unable to compile class for JSP". What did I do wrong?

              An error occurred at line: -1 in the jsp file: null

              Generated servlet error:
              [javac] Compiling 1 source file
              [javac] javac: invalid flag: C:\Documents
              [javac] Usage: javac
              [javac] where possible options include:
              [javac] -g Generate all debugging info
              [javac] -g:none Generate no debugging info
              [javac] -g:{lines,vars,source} Generate only some debugging info
              [javac] -nowarn Generate no warnings
              [javac] -verbose Output messages about what the compiler is doing
              [javac] -deprecation Output source locations where deprecated APIs are used
              [javac] -classpath Specify where to find user class files
              [javac] -sourcepath Specify where to find input source files
              [javac] -bootclasspath Override location of bootstrap class files
              [javac] -extdirs Override location of installed extensions
              [javac] -d Specify where to place generated class files
              [javac] -encoding Specify character encoding used by source files
              [javac] -source Provide source compatibility with specified release
              [javac] -target Generate class files for specific VM version
              [javac] -help Print a synopsis of standard options




              at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)
              at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
              at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:353)
              at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
              at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
              at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
              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:256)
              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.valves.CertificatesValve.invoke(CertificatesValve.java:246)
              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.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:171)
              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.valves.AccessLogValve.invoke(AccessLogValve.java:509)
              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:594)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
              at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
              at java.lang.Thread.run(Thread.java:536)

              • 4. Re: can't display jmx-console in 3.2.1 - 500 error
                haraldgliebe

                Could you install JBoss in a directory with no spaces in the path and try again?

                Regards,
                Harald

                • 5. Re: can't display jmx-console in 3.2.1 - 500 error
                  qinding

                  It works after I install it directly under c:\ without space in the folder name.

                  Thank you very much.
                  qin