Hi, everyone,
I run the tomcat 6.0.18 on my ubuntu 8.04.2, the jdk version is 1.6.0_07

I configure  the localhost 's ROOT to my home directory /home/ghw/myjava
the configuration file like this:

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
   <Listener className="org.apache.catalina.core.JasperListener" />
   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
/>
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
   <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

       </Host>
    </Engine>
  </Service>
</Server>


and I created the directory understand CATALINE_HOME/conf/Catalina/localhost
and create a ROOT.xml in there
like this:
<?xml version="1.0" encoding="utf-8"?>

<Context path="" docBase="/home/ghw/myjava" debug="9" reloadable="9" >

</Context>

when write a test index.jsp in /home/ghw/myjava, it works.


and when I try to write a Tag class in there, it will be report Error:

*type* Exception report

*message*

*description* *The server encountered an internal error () that prevented it
from fulfilling this request.*

*exception*

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 10 in the jsp file: /test.jsp
JavaScriptExampleTag cannot be resolved to a type
7:     </head>
8:     <body>
9:         <p>This is a simple test page </p>
10:         <my:message>
11:             This is a simple java alert message
12:         </my:message>
13:


An error occurred at line: 10 in the jsp file: /test.jsp
JavaScriptExampleTag cannot be resolved to a type
7:     </head>
8:     <body>
9:         <p>This is a simple test page </p>
10:         <my:message>
11:             This is a simple java alert message
12:         </my:message>
13:


An error occurred at line: 10 in the jsp file: /test.jsp
JavaScriptExampleTag cannot be resolved to a type
7:     </head>
8:     <body>
9:         <p>This is a simple test page </p>
10:         <my:message>
11:             This is a simple java alert message
12:         </my:message>
13:


Stacktrace:
        
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
        
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
        
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
        
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)


here is my web.xml
    <taglib>
        <taglib-uri>
            /WEB-INF/tld/JavaScriptExampleTag.tld
        </taglib-uri>

        <taglib-location>
            /WEB-INF/tld/JavaScriptExampleTag.tld
        </taglib-location>
    </taglib>


and the tld file is like this:
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE taglib
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
        "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd";>

<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>JavaScriptExampleTag</short-name>
    <uri>/WEB-INF/tld/JavaScriptExampleTag.tld</uri>
    <description>
        A simple tab library for the examples
    </description>

    <tag>
        <name>message</name>
        <tag-class>JavaScriptExampleTag</tag-class>
        <info>Display Alert Box</info>
    </tag>



</taglib>


and the Tag class like this:
import java.io.IOException;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class JavaScriptExampleTag extends BodyTagSupport {
    public int doEndTag() throws JspTagException {
        String ls_alert = "";

        try {
            BodyContent lbc_bodycurrent = getBodyContent();

            if ( lbc_bodycurrent != null ) {
                String ls_message = lbc_bodycurrent.getString();
                JavaScriptExample JS = new JavaScriptExample();

                ls_alert = JS.alert(ls_message.trim());

            }

            pageContext.getOut().write(ls_alert);

        } catch ( IOException e ) {
            throw new JspTagException("Error " + e.toString());
        }
        return EVAL_PAGE;
    }
}

and the Bean class is like this:
import java.io.Serializable;

public class JavaScriptExample implements Serializable {

    public JavaScriptExample() {

    }

    public String alert(Object aobj_data) {
        return( start_script + " alert(\" " +
                aobj_data.toString() + "\");" +
                end_script );
    }



    //private area
    private String start_script = "<script language=\"javascript\">";
    private String end_script = "</script>";



}


anyone can help me on this?

thanks very much


Mike
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Reply via email to