logo       

JSPs in non root directory can't see a class in WEBINF/classes: msg#00056

text.xml.resin.user

Subject: JSPs in non root directory can't see a class in WEBINF/classes

Hi,

I'm new to Resin and I'm stuck with a problem I can't figure out.

I'm using version 3.0.6.

Let's say I have a class called IntranetCalendar (in WEBINF/classes) and I use a scriplet in a JSP page like <% IntranetCalendar cal = new IntranetCalendar(); %>

When I invoke the JSP page from the root directory, it works like a charm (i.e., http://www.mysite.com/calendar.jsp). But if I place the page in a subdirectory (i.e., http://www.mysite.com/somedir/calendar.jsp) then I get a compiler exception saying it cannot resolve the symbol 'class IntranetCalendar').

My setup is a bit complicated : I run Resin from Apache 1.3.29 with each virtual host running in its own JVM. My resin.conf and xml.conf follow. If anyone has some time to take a quick look at these files and maybe give me an hint, I'would be very grateful to him or her.

Here is my resin.conf:

<resin xmlns="http://caucho.com/ns/resin";>

<dependency-check-interval>2s</dependency-check-interval>
<javac compiler="internal" args=""/>

<thread-pool>
<thread-max>50</thread-max>
<spare-thread-min>5</spare-thread-min>
</thread-pool>

<min-free-memory>1M</min-free-memory>

<log name=''>
<path>/data/web/www13/moria/www-tests/logs/resin_log</path>
<rollover-period>1W</rollover-period>
</log>
<stderr-log>
<path>/data/web/www13/moria/www-tests/logs/resin_stderr</path>
<rollover-period>1W</rollover-period>
</stderr-log>
<stdout-log>
<path>/data/web/www13/moria/www-tests/logs/resin_stdout</path>
<rollover-period>1W</rollover-period>
</stdout-log>

<server>

<class-loader>
<tree-loader path="$resin-home/lib"/>
</class-loader>

<cluster>
<srun id="" host="127.0.0.1" port="6802" index="1"/>
</cluster>

<ignore-client-disconnect>true</ignore-client-disconnect>

<host id="">

<document-directory>/data/web/www13/moria/www-tests/htdocs</document-direct
ory>

<web-app-default>
<class-loader>
<compiling-loader path='WEB-INF/classes'/>
<library-loader path='WEB-INF/lib'/>
</class-loader>

<servlet-mapping url-pattern="/servlet/*" servlet-name="invoker"/>

<servlet servlet-name="jsp"
servlet-class="com.caucho.jsp.JspServlet">
</servlet>
<servlet-mapping url-pattern="*.jsp" servlet-name="jsp"/>

<servlet servlet-name="jspx"
servlet-class="com.caucho.jsp.JspServlet">
<init>
<xml>true</xml>
</init>
</servlet>
<servlet-mapping url-pattern="*.jspx" servlet-name="jspx"/>

<servlet servlet-name="xtp"
servlet-class="com.caucho.jsp.XtpServlet"/>
<servlet-mapping url-pattern="*.xtp" servlet-name="xtp"/>

<config-file>WEB-INF/web.xml</config-file>
<config-file>WEB-INF/resin-web.xml</config-file>
</web-app-default>

<web-app id='/'></web-app>
</host>
</server>
</resin>

And here is my web.xml:

<web-app id='/'>
<database>
<jndi-name>jdbc/mysql</jndi-name>
<driver type="com.mysql.jdbc.Driver">
<url>jdbc:mysql://mysql.abcis.ch:3306/ovv</url>
<user>user</user>
<password>password</password>
</driver>
<max-connections>20</max-connections>
<max-idle-time>30s</max-idle-time>
</database>

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<url-pattern>/hello</url-pattern>
<servlet-name>hello</servlet-name>
</servlet-mapping>

<servlet>
<servlet-name>dbtest</servlet-name>
<servlet-class>DBServlet</servlet-class>
</servlet>
<servlet-mapping>
<url-pattern>/dbtest</url-pattern>
<servlet-name>dbtest</servlet-name>
</servlet-mapping>

</web-app>

And for the sake of completness, the JSP page:

<%@ page import="java.util.*" %>
<HTML>
<HEAD>
<TITLE>TEST DB</TITLE>
</HEAD>
<BODY>

<%
IntranetCalendar cal = new IntranetCalendar(new Locale("fr", "CH"));
%>

<H1>** OK **</H1>

</BODY>
</HTML>

Thanks in advance for any help,

Christophe

------
Christophe Pythoud (pythoud@xxxxxxxx)
22, rue du Pont
CH-1003 Lausanne(Switzerland)
Phone: +41 79 310 0106 / Fax: +41 21 697 0226





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise