Jdev 10G Custom Tag compilation problems
Hi,
I noticed that new tld's are added to "src/META-INF/."
When i compile my jsp to reference the tld it is not successful b/c it is looking for the tlds within the "public_html" or somewhere within it. I turned off tld and web.xml validation, but jdev 10G still validates the location of the tld. Is there way to configure Jdev to put the tld in another location?
I know i can work around this by building w/ ant or someother compiler external to Jdev, but would like to remedy this problem so i can use jdeveloper as it is.
hope someone can shed some light, i've been working on this all day long...
Thanks in advance,
Eugene
i am referenceing the tld via the web.xml alias entry. I found a work around where i copy the tld to somewhere in the public_html location of the project. I guess Jdeveloper doesn't look for the tld within META-INF which is embedded in the src directory structure of the project. For some reason, Jdeveloper doesn't look there for the TLD where it writes the tld to. it's interesting that jdeveloper doesn't look for the tld where it writes to. :)
from the server side, when i deploy, it works okay. but to get around the compilation problem, i have to copy the tld or softlink it to the META-INF location of the original tld.
I tried turning off web.xml, tld, and jsp validation of TLDs to get around this problem, but that doesn't seem to "turn it off."
How do you approach this problem? do you use ant or some other external build process?
thanks!
Similar Messages
-
Custom Tag Capitalization Problem..
All,
OS: Windows 2000
App Server: Weblogic 6.0 sp 2
JDK: 1.3 (and tried 1.3.1)
I have a set of custom tags that run fine when I use them on an app server (such as Enhydra) with JDK 1.2.2, but when I switch to JDK 1.3.x, which weblogic 6.x requires, they suddenly start generating errors with attributes which have capitalized letters in them. For example, in my taglib I have:
<attribute>
<name>closeConnection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
and in the support class I have:
* Get the value of closeConnection.
* @return value of closeConnection.
public boolean getCloseConnection() {
return closeConnection;
* Set the value of closeConnection.
* @param v Value to assign to closeConnection.
public void setCloseConnection(String v) {
if(v.toUpperCase().equals("TRUE")){
this.closeConnection = true;
} else {
this.closeConnection = false;
When I go to the page that this tag is on, I get the following output:
Parsing of JSP File '/index.jsp' failed:
/index.jsp(1): Error in using tag library uri='/cwerks' prefix='cwerks': There is no setter method for property 'closeconnection', for Tag class 'net.cwerks.taglib.MyTag'
probably occurred due to an error in /index.jsp line 1:
<%@ taglib uri="/cwerks" prefix="cwerks" %>
Thu Aug 02 19:06:52 PDT 2001
Note that the 'closeconnection' is all lowercase despite the fact that it is upper case in the tld and in the class itself.
I came across a similar problem in weblogic 5.1 when I upgraded from JDK 1.2.2 to JDK 1.3. I tried changing the JDK for weblogic 6.0 sp 2 to 1.2.2, but a dll was missing. I also tried switching it to 1.3.1, but that did not help. It seems like introspection may have changed slightly between the two version. I'm shocked, and a bit suspicious, that I haven't seen this problem all over the newsgroups. Anyone else seen this?
Thank you,
Carson Gross
[email protected]
[att1.html]
A solution presents itself:
The problem was NOT with capitalization. Instead, the problem was as
follows:
My method was for setting a boolean, but I took a string so that people
wouldn't have to type:
<mytags:tag foo="<%=true%>" />
instead, they could type:
<mytags:tag foo="true" />
which would call the setter method with a string "true", which would be then
converted to a boolean within my class.
So my setter has this signature:
public void setFoo(String s)
and my getter has this signature:
public boolean getFoo() /* I know this isn't standard, but isFoo doesn't
sound good to me*/
I can't tell if it's because JavaBeans changed slightly between jdk 1.2.2
and 1.3.x, or if Weblogic changed the way that they do things (I suspect the
latter, since I had things working fine in WL 5.2 w/ jdk 1.2.2 and then
things broke with WL 5.2 w/ jdk 1.3), but this no longer returns foo as a
valid property to be set, and since weblogic 6.x relies on JavaBeans,
instead of straight up introspection, it barfs. (I found this out by using
jad/emacs, a wicked combination for those who want to poke around in jars).
Anyway, I hope I can save someone else who has this same, albeit
specialized, problem a lot of pain by my discovery. Your getters and
setters better be of the same type with custom tags, or weblogic w/ jdk1.3.x
is gonna barf when parsing the tld.
Cheers, and thank God that's behind me,
Carson Gross
[email protected]
====================================================
"Carson Gross" <[email protected]> wrote in message
news:[email protected]...
The plot grows thicker...
The tags work fine on Tomcat 3.2.2
I deploy the example tags that came with wl60 that have more than one
capital letter in thier attributes, and they work fine. But my tag library
stubbornly insists on not working so long as I keep the attributes with more
than one capital letter in. If I remove the offending attributes, or change
them to have only one capital letter, they work, but this is not an
acceptable solution. (I guess.)
I even created an simple introspection class to make sure that the acutal
methods were there. They were.
I am at a complete loss here... I guess it's tomcat for now.
Cheers,
Carson Gross
[email protected]
"Carson Gross" <[email protected]> wrote in message
news:[email protected]...
All,
OS: Windows 2000
App Server: Weblogic 6.0 sp 2
JDK: 1.3 (and tried 1.3.1)
I have a set of custom tags that run fine when I use them on an app server
(such as Enhydra) with JDK 1.2.2, but when I switch to JDK 1.3.x, which
weblogic 6.x requires, they suddenly start generating errors with attributes
which have capitalized letters in them. For example, in my taglib I have:
<attribute>
<name>closeConnection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
and in the support class I have:
* Get the value of closeConnection.
* @return value of closeConnection.
public boolean getCloseConnection() {
return closeConnection;
* Set the value of closeConnection.
* @param v Value to assign to closeConnection.
public void setCloseConnection(String v) {
if(v.toUpperCase().equals("TRUE")){
this.closeConnection = true;
} else {
this.closeConnection = false;
When I go to the page that this tag is on, I get the following output:
Parsing of JSP File '/index.jsp' failed:
/index.jsp(1): Error in using tag library uri='/cwerks' prefix='cwerks':
There is no setter method for property 'closeconnection', for Tag class
'net.cwerks.taglib.MyTag'
probably occurred due to an error in /index.jsp line 1:
<%@ taglib uri="/cwerks" prefix="cwerks" %>
Thu Aug 02 19:06:52 PDT 2001
Note that the 'closeconnection' is all lowercase despite the fact that it is
upper case in the tld and in the class itself.
I came across a similar problem in weblogic 5.1 when I upgraded from JDK
1.2.2 to JDK 1.3. I tried changing the JDK for weblogic 6.0 sp 2 to 1.2.2,
but a dll was missing. I also tried switching it to 1.3.1, but that did not
help. It seems like introspection may have changed slightly between the two
version. I'm shocked, and a bit suspicious, that I haven't seen this
problem all over the newsgroups. Anyone else seen this?
Thank you,
Carson Gross
[email protected]
-
Custom tag: Compilation error
I created a simple class for a simple custom tag. Whenever, I tried to compile, I got this error message:
package javax.servlet.jsp.tagext does not exist
Here's what I did:
javac -classpath c:\jakarta-tomcat-5.5.9\common\lib\servlet-api.jar com\app\mytags\errorTag.java
I'm using J2SE 5.0 SDK and Tomcat 5.5.9. In addition, I also included the servlet-api.jar in classpath.
Thanks so much,
RajaHere's what I did:
javac -classpath
c:\jakarta-tomcat-5.5.9\common\lib\servlet-api.jar
com\app\mytags\errorTag.javaUnless you have put com/app/mytags/errorTag.java into that jar file, that isn't what you did. If you did, the compiler would complain that it couldn't find errorTag.java. Because you don't have a classpath entry where it might be. -
I created a workspace with two projects in it.
In the first project I realized a tag library with its deployment descriptor.
In the second project I realized a .war component with a jsp that uses the tag in the library.
In the .war deployment descriptor I choosed the library deployment descriptor in the Profile Dependencies page.
When I deploy my .war (alone or in an .ear) file I properly find the library .jar file in it but in this .jar file there isn't any .class file.
Where are my tag handlers? If I deploy the tag library alone the .class files are there so I can replace the library .jar file created in the .ear and all works properly.
I tried creating a third project that include the .war in its .ear, but I cannot include my tag library .jar because it's not listed in the Application Assembly page.
Thank you
Andrea MattioliI found the bug! Its in greeting.jsp ...
Instead of
<tw:greeting />
I typed....
<tw.greeting />
which resulted in the the custom tag not being called! That was the source of my problem.
Thanks,
Joe! -
I'm using custom tags in my app (JSP 1.2). My tld is located in WEB-INF/tlds (not packaged in a JAR), meaning that the uri in the tld file should be picked up by JSP 1.2's autodiscovery. This works fine in actual deployment, but Nitrox claims that:
"The tag library uri "mytaglib" cannot be mapped to an existing tld file. "
when I attempt to reference it as follows from within my jsps:
<%@ taglib uri="mytaglib" prefix="m" %>
Do you know if this is a bug, or have any suggestions as to why the tld uri isn't being picked up by Nitrox?
Thanks,
JohnThis is a known (kind of) issue. There are 2 easy workarounds:
1- Specify the path to the tld file in the uri attribute. For example:
<%@ taglib uri="/WEB-INF/mytaglib.tld" prefix="m" %>
2- Map the tld file in web.xml. For example:
<taglib>
<taglib-uri>mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
M7 Support -
Jsp/custom tag compiler error (HttpServletResponse)
I originally posted with on Oracle's site but I am not getting any help.
Our server is running Oracle 9ias with JServ and Apache.
I have created a simple jsp that calls a custom tag but I am getting the following error:
Method addHeader(java.lang.String, java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
response.addHeader("Pragma", "No-cache");
^
Is something not setup correctly or installed where it should be?
the code for the custom tag is from the O'reilly book "JavaServer Pages." This works with JDeveloper on my computer but not on our server.
package info.wyoroad.jsp.tags.generic;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
* This class is a custom action for setting response headers
* that prevent the page from being cached by a browser or
* proxy server.
* @author Hans Bergsten, Gefion software <[email protected]>
* @version 1.0
public class NoCacheTag extends TagSupport {
* Sets "no cache" response headers
public int doEndTag() throws JspException {
HttpServletResponse response =
(HttpServletResponse) pageContext.getResponse();
response.addHeader("Pragma", "No-cache");
response.addHeader("Cache-Control", "no-cache");
response.addDateHeader("Expires", 1);
return EVAL_PAGE;
}The jsp looks like:
<%@ page language="java" contentType="text/html;charset=WINDOWS-1252"%>
<%@ taglib uri="/WEB-INF/wylib.tld" prefix="info" %>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=WINDOWS-1252">
<META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
<info:NoCache />
<TITLE>
Test tag
</TITLE>
</HEAD>
<BODY>
<H2>Test the tag NoCache</h2> </P>
</BODY>
</HTML> -
Jsp & custom tag buffer problem
Hi all,
I have a tag that reads one of the txt file and renders the output on the JSP.
The problem is, when I refresh the same page in it duplicates the output and append it to the previous output every time (mostly).
I know there is no that there is no exception occurred, bcoz i have checked the log files. I am using tomcat 5.5.9
I tired to use out.flush() but it gave me same thing.
Any help would be appreciated.
Thank you.
The code:
JspWriter out = pageContext.getOut();
URL header = new URL(url);
BufferedReader in = new BufferedReader
(new InputStreamReader(header.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null){
System.out.println(inputLine);
fileContent = fileContent + inputLine;
in.close();
out.print(fileContent);
out.flush();code_box wrote:
You are genius. Tell that to the forum elite! Seriously, it's just a matter of practice. I've been using Java since 1998 so I better be able to spot that!
A very basic mistake from me and you spotted it right away...As you get more experience you'll spot them esaily yourself, but as you write more and more complex code, the mistakes you DO make will be much harder to figure out. :)
Thanks a lot. It resolved the problem.
Cheers mate,
/md.Any time. Good luck! -
Jsp 2.0 and jdev 10g production (custom tags)
there are some examples at
http://otn.oracle.com/sample_code/tech/java/jsps/index.html
I have certian questions it would be great if some one would clear these for me..
In JSP 1.2 if we wanted to write the custom tag's we had tag classes that extend TagSupport or TagBodySupport and the doStart() and doEnd() tag with the evaluate body. I could spit out the complete html text on an encounter of a tag! but in the JSP 2.0 a doTag() seems to take care of the intracies! how??
Now with jsp 2.0 I want to do the same... say some thing like this ....
<tg:myTag list="${somelist}"></tg:myTag> and say in my tag handler class I know what to do with this list. May be I will create complete html code and will use jspWriter to write out the html inbetween these tags!!
I have downloaded the eStore example but this class
javax.servlet.jsp.tagext.SimpleTagSupport; is not imported. So I am not able to look at the SimpleTagSupport class.
If I am trying to run the example in jdev 10g production should I have to specify that I am using jsp 2.0 so that jdev knows not to use jsp 1.2? if so how can I do this.
Does all the examples provided use the OC4J standalone? Can I use the embedded oc4J instead?
regards.After reading a bit more now I know how the tags work.
However from the example I see (eStore) an array called by name "products" is created and set on the jspContext. If I already have the list and want to pass on the list which is in a bean or a session or a request can I provide it this way.
<tag:myTag var=${bean.list}>
or
<tag:myTag var=${session.list}>
or
<tag:myTag var=${request.list}>in the .tld file I should specify the attribute var and whether it should be runtime evaluable.
and in the TagClass
private Collection var;
private String listName;
public void setVar(Colloection aList) {
this.var = aList;
public Collection getVar() {
return var;
public void doTag( ) throws JspException{
// do i always need to this next line ------
getJspContext( ).setAttribute(listName, getVar());
}so that in my .tag file I can use some thing like this
<c:forEach var="list" items="${item}">
<td>${item.subObject.name}</td>
<td>${item.subObject.value}</td>
</c:forEach>And finally... as and when a tag is encountered the .tag file contents corresponding to that tag is called to get the html text and all that text is printed out in the jsp page right (without the jspWriter "out"). How does the browser know when to stop? like doEndTag() function? are these functions implicitly called?
regards. -
Custom Tag Problem With iPlanet
Hi,
I've followed the instructions for creating Custom Tags located at: http://docs.iplanet.com/docs/manuals/enterprise/41/rn41sp9.html#18776. I'm using the examples provided and am still getting the:
org.apache.jasper.JasperException: Unable to open taglibrary /jsps/test-tags.jar : com.sun.xml.tree.TextNode
error. I've followed the instructions "Make sure you have the DOCTYPE in your taglib.tld..." but I still get the error.
iPlanet 4.1 Enterprise on Windows 2000
Any ideas?
Thanks in advance.Hey i am also getting the same error, please let me know if u had solved this problem. i have copied the error message below
[25/Feb/2002:15:00:46] info ( 260): JSP: JSP1x compiler threw exception
org.apache.jasper.JasperException: Unable to open taglibrary /jsps/test-tags1.jar : in is null
at org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventListener.java:708)
at org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener.java:119)
at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:190)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1048)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1022)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1018)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:173)
at com.netscape.server.http.servlet.NSServletEntity.load(NSServletEntity.java:230)
at com.netscape.server.http.servlet.NSServletEntity.update(NSServletEntity.java:149)
at com.netscape.server.http.servlet.NSServletRunner.Service(NSServletRunner.java:453)
[25/Feb/2002:15:00:46] warning ( 260): Internal error: Failed to get GenericServlet. (uri=/web/jsps/test-tags.jsp,SCRIPT_NAME=/web/jsps/test-tags.jsp) -
Hello Everyone,
I am using iPlanet 4.1 as my web server and am having some problems with using custom tags. I try to access a jsp that uses my custom tags and I get a 500 Internal Server error. Then when I check the web server logs all it has is this one very esoteric message: "[26/Sep/2002:08:35:51] warning ( 8042): Internal error: Failed to get GenericServlet. uri=/BUYS/sep_accts.jsp,SCRIPT_NAME=/BUYS/sep_accts.jsp)" Usually I get this message when I make changes to a servlet and do not restart the web server, but that is not the problem this time.
I am trying to use a very simple tag called SayHelloTag which just prints hello to the browser. I have a foundation tag which extends tag support and then SayHelloTag extends the foundation tag. Then I have it all JARd up and in the classpath like I'm supposed to. If anyone could take a look at my code and tell me if you see anything wrong I would be most appriciative!
BuysFoundationTag
package com.nf.buys.tags;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import com.nf.buys.lists.*;
public class BuysFoundationTag extends TagSupport
SayHelloTag
package com.nf.buys.tags;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import com.nf.buys.lists.*;
public class SayHelloTag extends BuysFoundationTag
public int doStartTag()
{ System.out.println("Starting do Start tag");
try
System.out.println("start the try statement");
JspWriter out = pageContext.getOut();
System.out.println("output the hello message");
out.println("Say Hello");
catch(Exception e)
e.printStackTrace();
finally
return SKIP_BODY;
TLD File
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://cheerios2.nfs.nwie.net:5050/BUYS/web-jsptaglibrary_1_1.dtd">
<taglib>
<!-- after this the default space is "jsptaglibrary_1_2.dtd" -->
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>buyslib</shortname>
<info>
A custom tag library for use by the Nationwide Financial,
Financial Systems, Automated Buy/Sell System.
</info>
<tag>
<name>SayHello</name>
<tagclass>com.nf.buys.tags.SayHelloTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>A test tag</info>
</tag>
</taglib>
finally, my JSP page
<html>
<head>
<title>Automated BUY/SELL System</title>
<link rel=stylesheet href="buys_styles.css" type="text/css">
<%@ taglib uri="/BUYS/buys-tags.jar" prefix="buystag" %>
</head>
<body bgcolor='#FFFFF'>
<div id='heading'>
This is the heading information
</div>
<div id='navigation'>
<table width='100%'>
<tr>Nav Option 1</tr>
<tr>Nav Option 2</tr>
<tr>...</tr>
<tr>Nav Option n</tr>
</table>
</div>
<div id='optionalMessage'>
This is the optional message
</div>
<div id='listArea'>
<buystag:SayHelloTag>
</div>
</body>
</html>I get no compilation errors when I compile any of the tag handler classes. But when the web server can't compile the jsp page. Am I doing something obviously wrong? Please help!!
ChrisOMG I am a moron. I just have the name of the tag wrong.
-
Initial problem with JSP Custom Tag devolopment
Hi ,
I have encountered a problem with my JSP application which utilizes a simple custom tag.
First I created followinng directories.
1. %TOMCAT_HOME%\webapps\testTags
2. %TOMCAT_HOME%\webapps\testTags\META-INF
3. %TOMCAT_HOME%\webapps\testTags\WEB-INF
4. %TOMCAT_HOME%\webapps\testTags\WEB-INF\tlds
5. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes
6. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com
7. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com\tek271
8. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com\tek271\testTags
I created the essential four files, that is named as follows.
1.TagError.java
2.web.xml
3.testTld.tld
4.testJsp.jsp
Then i put the files under these directories as given below
testJsp.jsp under %TOMCAT_HOME%\webapps\testTags.
web.xml under %TOMCAT_HOME%\webapps\testTags\WEB-INF
TagError.java under %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes
TagError.class under %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com\tek271\testTags
testTld.tld %TOMCAT_HOME%\webapps\testTags\WEB-INF\tlds
Here is the content inside the files.
1.TagError.java
package com.tek271.testTags;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class TagError extends TagSupport {
private String mColor = "red";
public void setColor(String aColor) {
mColor = aColor;
} // setColor
public int doStartTag() throws JspException {
try {
JspWriter out = pageContext.getOut();
out.print("<font color=\"");
out.print(mColor);
out.print("\"><b>Error: ");
} catch (IOException ex) {
throw new JspTagException(ex.getMessage());
return EVAL_BODY_INCLUDE; // other return: SKIP_BODY
} // doStartTag()
public int doEndTag() throws JspException {
try {
JspWriter out = pageContext.getOut();
out.println("</b></font><br>");
} catch (IOException ex) {
throw new JspTagException(ex.getMessage());
return EVAL_PAGE; // other return: SKIP_PAGE
} // doEndTag()
} // TagError
2.web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<taglib>
<taglib-uri>/testTaglib</taglib-uri>
<taglib-location>/WEB-INF/tlds/testTld.tld</taglib-location>
</taglib>
</web-app>
3.testTld.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>testTld</shortname>
<info>Testing jsp tags</info>
<tag>
<name>tagError</name>
<tagclass>com.tek271.testTags.TagError</tagclass>
<bodycontent>JSP</bodycontent> <!-- Also: empty, tagdependent -->
<info>Show a string as an error message</info>
<attribute>
<name>color</name>
<required>false</required>
</attribute>
</tag>
</taglib>
4.testJsp.jsp
<%@ taglib uri="/testTaglib" prefix="test" %>
<html>
<head>
<title>Testing Tag Library</title>
</head>
<body>
<test:tagError>Invalid user name</test:tagError>
<test:tagError color="blue">Invalid Password</test:tagError>
</body>
</html>
but i am getting the following error.
Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error
type Exception report
message Internal Server Error
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: File "/testTaglib" not found
at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:214)
at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:174)
at org.apache.jasper.compiler.JspParseEventListener.processTaglibDirective(JspParseEventListener.java:1162)
at org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventListener.java:758)
at org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener.java:121)
at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:255)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1145)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1103)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1099)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:213)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:210)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
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:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
at java.lang.Thread.run(Thread.java:536)
why is it like this ?please give me a solution.
Thanking in advance.
From
Vinod A.Dear patreck ,
It does not work.
I have replaced the line
<%@ taglib uri="/testTaglib" prefix="test" %>
with
<%@ taglib uri="WEB-INF/tlds/testTaglib" prefix="test" %>
but now it shows the error ,
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: File "/testTags/WEB-INF/tlds/testTaglib" not found
any more suggestion ?
From Vinod A. -
Problems with custom tags (Tomcat 4.1)
I have been trying to set up an existing web application to use a custom tag library. I have these tag-related files:
/photodb/WEB-INF/photodb.tld
/photodb/WEB-INF/classes/PhotoListTag.class
/photodb/photolist.jsp
This is how i have the photoList tag configured in photodb.tld
<tag>
<name>photoList</name>
<tag-class>PhotoListTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>startIndex</name>
</attribute>
</tag>
When i try to view photolist.jsp, i get this error:
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: -1 in the jsp file: null
Generated servlet error:
[javac] Compiling 1 source file
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\photodb\photolist_jsp.java:73: cannot resolve symbol
symbol : class PhotoListTag
location: class org.apache.jsp.photolist_jsp
PhotoListTag jspxth_photodb_photoList_0 = (PhotoListTag) jspxtagPool_photodb_photoList.get(PhotoListTag.class);
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\photodb\photolist_jsp.java:73: cannot resolve symbol
symbol : class PhotoListTag
location: class org.apache.jsp.photolist_jsp
PhotoListTag jspxth_photodb_photoList_0 = (PhotoListTag) jspxtagPool_photodb_photoList.get(PhotoListTag.class);
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\photodb\photolist_jsp.java:73: cannot resolve symbol
symbol : class PhotoListTag
location: class org.apache.jsp.photolist_jsp
PhotoListTag jspxth_photodb_photoList_0 = (PhotoListTag) jspxtagPool_photodb_photoList.get(PhotoListTag.class);
^
3 errors
I have tried many ideas, such as packaging the tag handler class, and putting the class file in other loctions, but nothing has helped.
I know that Tomcat is recognizing PhotoListTag at some point (when it parses the TLD file, but not when compiling the JSP, I think), because if i change the <tag-class> to an invalid class, i get an "Unable to load class photoList" (which is a confusing error message btw, as photoList is not a class, but a tag name).
Does anyone know how to fix this problem? I've been going in circles for hours, and i'm thinking this problem has a simple solution.Thank you for your quick replies. Unfortunately, they do not solve my problem. If I put PhotoListTag in the com.yourdomain package (and move it to classes/com/yourdomain), the error changes to reflect the different package (e.g. package com.yourdomain does not exist). Also, deleting the class files and restarting Tomcat did not cause any changes.
Although my knowledge of how Tomcat works is limited, it seems to me that something like this is happening:
When a request for /photodb/photolist.jsp is recieved, tomcat processes that file, processes the tld file, and checks for that any classes called using a tag--in this case <photodb:photoList>--exist. If the class is invalid, the error message "Unable to load class photoList" is given.
Otherwise, it translates the jsp into java, and attempts to compile it. This is where the problem occurs. It seems that the jasper compiler does not know where to look for the PhotoListTag class. Is there a way that this can be changed, or is could the problem be caused by something else? -
JDev 9.0.3 - Working with Custom Tags Hangs JDev Repeatedly!
All,
I recently upgraded from JDev 9.0.2 to 9.0.3 because of the new support for JSP 1.2 and Servlets 2.3. As you probably know, JSP 1.2 includes additional support for custom tag development. Unfortunately, JDev 9.0.3 keeps hanging repeatedly when trying to work with a custom tag library. I have seen a couple other postings on this forum that indicate the fact that I'm not alone in this experience.
It seems that I am able to open a taglib and make a modification, and then save the taglib without a problem. However, if I attempt to make any further changes to that taglib again without restarting JDev, it just hangs JDev and I have to kill the JDev process and restart JDev. This has made JDev extremely frustrating and unusable developing custom tags. I do not have this problem with JDev 9.0.2, but that version does not support the additionally tag library functionality of JSP 1.2, which is supported by 9.0.3.
Is this a bug with 9.0.3? Does anyone know of a workaround I can try?
Thanks in advance,
Kyle CorleyHi,
Logged as bug 2725712.
Thanks,
Brian
JDev Team -
JDev903 custom tag (bug?)-JDev Team please respond
JDeveloper is continually hanging while working with custom tags. For example, I will select Add Tag and nothing will happen and JDeveloper stops responding. If I go to End Task, I am told that JDeveloper is waiting for a response, but by then JDev is just a gray window. This behavior becomes more frequent after a change, i.e. change a tag name, try to delete a tag or library. In fact, I have had to completely start over in the creation of a tag library when I notice a necessary change within a tag due to the hanging and disappearance of menu items. Please see previous post, Re: 10.1.3.1 xpath-functions.xml
Please look into this issue. Our team feels that custom tags could be a valuable tool, but we are RAPID and we don't have time to constantly shut-down and restart our IDE.
Thanks,
DebDavid,
One thing to try would be JPublisher from the command line. If your problem persists with JPublisher from the command line, then the bug needs to be filed against that product. If not, then the problem is with us.
In either case, please post your code so we can try to reproduce the error.
The JPublisher command line facility is documented in the JPublisher User's Guide, available from the Oracle8i 8.1.6 documentation pages on OTN.
Thanks! -
JSP Compilation Problems With JSTL tags
My JSP worked well when I used JSP expressions, scriptlets, .... I tried to use JSTL instead and encountered some compilation problems. I am unable to see my mistakes and need help:
Problme #1:
int offset = 0;
try
<c:set var="offset" value="${requestScope.offset}" />
catch ( Exception e )
// do nothing
}The above code has two compilation errors:
Generated servlet error:
[javac] Compiling 1 source file
illegal start of expression
<c:set var="offset" value="${requestScope.offset}" />
^
Generated servlet error:
';' expected
<c:set var="offset" value="${requestScope.offset}" />
^
Problem #2:
<c:set var="threadBean" value="${requestScope.ThreadBean}" />
int threadID_int = ParamUtil.getParameterInt( request, "thread" );
<c:if test="${threadBean.threadID} != threadID_int">
throw new AssertionException( "The two threadID are not the same." );
</c:if>Generated servlet error:
illegal start of expression
<c:if test="${threadBean.threadID != threadID_int}">
^I have deleted the Java code around the JSTL tags. Now, what is wrong with this <c:if test=" ... "> tag? It seems that I have problems to get JSTL tags right.
It seems that I have problems to get JSTL tags right....
<c:if test="${attachBean.attachMimeType.startsWith('image/')}">
<html:img page="getattachment?attach=<c:out value='${attachBean.attachID}' />" alt="<c:out value='${attachBean.attachFilename}' />" title="<c:out value='${attachBean.attachFilename}' />" border="0" />
</c:if>error message:
74: tag = 'if' / attribute = 'test': An error occurred while parsing custom action attribute "test" with value "${attachBean.attachMimeType.startsWith('image/')}": Encountered "(", expected one of ["}", ".", ">", "gt", "<", "lt", "==", "eq", "<=", "le", ">=", "ge", "!=", "ne", "[", "+", "-", "*", "/", "div", "%", "mod", "and", "&&", "or", "||"]
Maybe you are looking for
-
Why does my just rented movie say I can play it in 48 hours?
So we came home on a Friday Night and commenced our family Pizza and Movie Night, sat down covered with cheese and for the first time decided to rent a movie on the Apple TV. We had watched NetFlix movies for almost a year, with no issues. But... n
-
What is happening with PSE 10? Cannot "log In" to download premium features
Do I have to upgrade to PSE 11 to have support and access to the premium files?
-
Could somebody tell me how to merge or insert pages of Acrobat 9.0 files in VB6?
I know that Acrobat do not support VB6. The PDDoc.InsertPages method worked with Acrobat 6.0 files but is not working with Acrobat 9.0 I looked into the Scripting Quicktest Professional and unfortunately I could not find how to create script using PD
-
Message Mapping - External Definitions
My Scenario 1) File1(Request with Employee Number) - Sent to XI (Async) 2) XI will send the Request over HTTP and will Receive the Response(Employee Details) (Synchronous) 3) The HTTP Response will be sent to File2(Employee Details) (Async) The Reque
-
i loaded the newest version of itunes and now neither my windows 7 computer nor itunes recognizes my ipod