Installing Struts Examples on Orion 1.0.3b...

2000-08-12 Thread Luis Arias

Hello fellow struts users !

I just want to share my experience with installing the struts example
webapps on the Orion application server.

1.  Locale problems

The struts example application generated exceptions due to the fact that I'm
running in the fr_FR default locale.  The first exception was caused by the
ActionResources.properties file not being found :

11/08/00 20:22 struts-example: Error preloading servlet
javax.servlet.UnavailableException: Cannot load internal resources from
'org.apache.struts.action.ActionResources'
 at
org.apache.struts.action.ActionServlet.initInternal(ActionServlet.java:541)
 at org.apache.struts.action.ActionServlet.init(ActionServlet.java:287)
 at javax.servlet.GenericServlet.init(GenericServlet.java)
 at com.evermind.server.http.HttpApplication.sw(JAX)
 at com.evermind.server.http.HttpApplication.si(JAX)
 at com.evermind.server.http.HttpApplication.sr(JAX)
 at com.evermind.server.http.HttpApplication.r6(JAX)
 at com.evermind.server.http.HttpApplication.init(JAX)
 at com.evermind.server.Application.q_(JAX)
 at com.evermind.server.http.dq.q_(JAX)
 at com.evermind.server.http.dp.j9(JAX)
 at com.evermind.server.http.dm.o9(JAX)
 at com.evermind.server.http.dm.o8(JAX)
 at com.evermind.util.e.run(JAX)

I solved the problem by putting a copy of the ActionResources.properties
file in
/WEB-INF/classes/org/apache/struts/action/ActionResources_fr.properties.

Wouldn't it be better to have a lookup that defaults to the
ActionResources.properties file no matter what the default locale is ?

2. Problems with finding the action.xml file

This is a know issue with orion for which the
getServletContext().getResourceAsStream(config); call doesn't go into
WEB-INF.  I modified the web.xml mapping for the taglib to point to
/action.xml and moved the file to /action.xml to fix this.

Wouldn't it be better to access this file as in the example Database servlet
?

getServletContext().getRealPath("/") +  "/WEB-INF/database.xml"


3. Problèmes with the jaxp...

Another exception  seemed to be coming from the java xml api :

C:\orionjava -jar orion.jar
Orion/1.0.3 initialized
Digester.getParser:
org.xml.sax.SAXException: com.sun.xml.parser/P-078 fr_FR
at com.sun.xml.parser.Parser.setLocale(Parser.java:172)
at
com.sun.xml.parser.SAXParserFactoryImpl.newParser(SAXParserFactoryImp
l.java:103)
at com.sun.xml.parser.SAXParserImpl.init(SAXParserImpl.java:40)
at
com.sun.xml.parser.SAXParserFactoryImpl.newSAXParser(SAXParserFactory
Impl.java:84)
at org.apache.struts.digester.Digester.getParser(Digester.java:288)
at org.apache.struts.digester.Digester.parse(Digester.java:748)
at
org.apache.struts.example.DatabaseServlet.load(DatabaseServlet.java:2
82)
at
org.apache.struts.example.DatabaseServlet.init(DatabaseServlet.java:1
75)
at javax.servlet.GenericServlet.init(GenericServlet.java)
at com.evermind.server.http.HttpApplication.sw(JAX)
at com.evermind.server.http.HttpApplication.si(JAX)
at com.evermind.server.http.HttpApplication.sr(JAX)
at com.evermind.server.http.HttpApplication.r6(JAX)
at com.evermind.server.http.HttpApplication.init(JAX)
at com.evermind.server.Application.q_(JAX)
at com.evermind.server.http.dq.q_(JAX)
at com.evermind.server.http.dp.j9(JAX)
at com.evermind.server.http.dm.o9(JAX)
at com.evermind.server.http.dm.o8(JAX)
at com.evermind.util.e.run(JAX)
Digester.getParser:
org.xml.sax.SAXException: com.sun.xml.parser/P-078 fr_FR
at com.sun.xml.parser.Parser.setLocale(Parser.java:172)
at
com.sun.xml.parser.SAXParserFactoryImpl.newParser(SAXParserFactoryImp
l.java:103)
at com.sun.xml.parser.SAXParserImpl.init(SAXParserImpl.java:40)
at
com.sun.xml.parser.SAXParserFactoryImpl.newSAXParser(SAXParserFactory
Impl.java:84)
at org.apache.struts.digester.Digester.getParser(Digester.java:288)
at org.apache.struts.digester.Digester.parse(Digester.java:748)
at
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java
:619)
at
org.apache.struts.action.ActionServlet.init(ActionServlet.java:291)
at javax.servlet.GenericServlet.init(GenericServlet.java)
at com.evermind.server.http.HttpApplication.sw(JAX)
at com.evermind.server.http.HttpApplication.si(JAX)
at com.evermind.server.http.HttpApplication.sr(JAX)
at com.evermind.server.http.HttpApplication.r6(JAX)
at com.evermind.server.http.HttpApplication.init(JAX)
at com.evermind.server.Application.q_(JAX)
at com.evermind.server.http.dq.q_(JAX)
at com.evermind.server.http.dp.j9(JAX)
at com.evermind.server.http.dm.o9(JAX)
at com.evermind.server.http.dm.o8(JAX)
at com.evermind.util.e.run(JAX)

To solve this I run orion in the following manner (on jdk1.2.2)

java -Duser.language=en -Duser.region=US -jar orion.jar

On jdk1.3, I 

Re: Installing Struts Examples on Orion 1.0.3b...

2000-08-12 Thread Craig R. McClanahan

Hi Luis ... see below.

Luis Arias wrote:

 Hello fellow struts users !

 I just want to share my experience with installing the struts example
 webapps on the Orion application server.

 1.  Locale problems

 The struts example application generated exceptions due to the fact that I'm
 running in the fr_FR default locale.  The first exception was caused by the
 ActionResources.properties file not being found :

 11/08/00 20:22 struts-example: Error preloading servlet
 javax.servlet.UnavailableException: Cannot load internal resources from
 'org.apache.struts.action.ActionResources'
  at
 org.apache.struts.action.ActionServlet.initInternal(ActionServlet.java:541)
  at org.apache.struts.action.ActionServlet.init(ActionServlet.java:287)
  at javax.servlet.GenericServlet.init(GenericServlet.java)
  at com.evermind.server.http.HttpApplication.sw(JAX)
  at com.evermind.server.http.HttpApplication.si(JAX)
  at com.evermind.server.http.HttpApplication.sr(JAX)
  at com.evermind.server.http.HttpApplication.r6(JAX)
  at com.evermind.server.http.HttpApplication.init(JAX)
  at com.evermind.server.Application.q_(JAX)
  at com.evermind.server.http.dq.q_(JAX)
  at com.evermind.server.http.dp.j9(JAX)
  at com.evermind.server.http.dm.o9(JAX)
  at com.evermind.server.http.dm.o8(JAX)
  at com.evermind.util.e.run(JAX)

 I solved the problem by putting a copy of the ActionResources.properties
 file in
 /WEB-INF/classes/org/apache/struts/action/ActionResources_fr.properties.

 Wouldn't it be better to have a lookup that defaults to the
 ActionResources.properties file no matter what the default locale is ?


I will have to look at this one.  I would expect java.util.ResourceBundle (which
I'm using to read this file) would do exactly what you describe, according to
it's Javadocs.


 2. Problems with finding the action.xml file

 This is a know issue with orion for which the
 getServletContext().getResourceAsStream(config); call doesn't go into
 WEB-INF.  I modified the web.xml mapping for the taglib to point to
 /action.xml and moved the file to /action.xml to fix this.

 Wouldn't it be better to access this file as in the example Database servlet
 ?

 getServletContext().getRealPath("/") +  "/WEB-INF/database.xml"


This approach will only work if your servlet container is actually running the
webapp out of a directory structure.  On containers that run an app directly
from the WAR file (or some other internal organization), getRealPath() will
return null and the above call will not work.

The servlet spec issue that led to this has been clarified --
ServletContext.getResource() is allowed to access static resources from within
WEB-INF -- but the container is not allowed to return these contents directly to
a client.  I understand that the newest version of Orion has been modified to
change this.


 3. Problèmes with the jaxp...

 Another exception  seemed to be coming from the java xml api :

 C:\orionjava -jar orion.jar
 Orion/1.0.3 initialized
 Digester.getParser:
 org.xml.sax.SAXException: com.sun.xml.parser/P-078 fr_FR
 at com.sun.xml.parser.Parser.setLocale(Parser.java:172)
 at
 com.sun.xml.parser.SAXParserFactoryImpl.newParser(SAXParserFactoryImp
 l.java:103)
 at com.sun.xml.parser.SAXParserImpl.init(SAXParserImpl.java:40)
 at
 com.sun.xml.parser.SAXParserFactoryImpl.newSAXParser(SAXParserFactory
 Impl.java:84)
 at org.apache.struts.digester.Digester.getParser(Digester.java:288)
 at org.apache.struts.digester.Digester.parse(Digester.java:748)
 at
 org.apache.struts.example.DatabaseServlet.load(DatabaseServlet.java:2
 82)
 at
 org.apache.struts.example.DatabaseServlet.init(DatabaseServlet.java:1
 75)
 at javax.servlet.GenericServlet.init(GenericServlet.java)
 at com.evermind.server.http.HttpApplication.sw(JAX)
 at com.evermind.server.http.HttpApplication.si(JAX)
 at com.evermind.server.http.HttpApplication.sr(JAX)
 at com.evermind.server.http.HttpApplication.r6(JAX)
 at com.evermind.server.http.HttpApplication.init(JAX)
 at com.evermind.server.Application.q_(JAX)
 at com.evermind.server.http.dq.q_(JAX)
 at com.evermind.server.http.dp.j9(JAX)
 at com.evermind.server.http.dm.o9(JAX)
 at com.evermind.server.http.dm.o8(JAX)
 at com.evermind.util.e.run(JAX)
 Digester.getParser:
 org.xml.sax.SAXException: com.sun.xml.parser/P-078 fr_FR
 at com.sun.xml.parser.Parser.setLocale(Parser.java:172)
 at
 com.sun.xml.parser.SAXParserFactoryImpl.newParser(SAXParserFactoryImp
 l.java:103)
 at com.sun.xml.parser.SAXParserImpl.init(SAXParserImpl.java:40)
 at
 com.sun.xml.parser.SAXParserFactoryImpl.newSAXParser(SAXParserFactory
 Impl.java:84)
 at org.apache.struts.digester.Digester.getParser(Digester.java:288)
 at org.apache.struts.digester.Digester.parse(Digester.java:748)
 at