We got the following explanations from SilverStream:

====================================
If the server running the struts application does not have access to the
apache site for to get the dtd, the dtd must effectively be placed on the
local file system.

SilverStream searches relative to the $SILVERSTREAM_HOME/bin directory

For

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"struts-config_1_0.dtd"> 

struts-config_1_0.dtd must be placed in $SILVERSTREAM_HOME/bin.


To place struts-config_1_0.dtd in $SILVERSTREAM_HOME/dtd_catalog use
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"../dtd-catalog/struts-config_1_0.dtd"> 


Another possibility is to avoid dtd validation at all when deploying to
production. Only validate the dtd at development and test where the place of
the dtd is not that important, but where checking validity can be inportant.
To do this:

Add a new init parameter to web.xml for the action servlet...

<init-param>
<param-name>validating</param-name>
<param-value>false</param-value>
</init-param>

This is DIFFERENT that the 'validate' param which you probably already have.
Don't include the DTD reference in you struts-config.xml file and this
should all work. For more info on the validating param see the javadoc for
the main action controller servlet. You won't need to bother with the
resource DTD catalog stuff, and your WAR should now be portable to any J2EE
app server without requiring pre-configuring. 
===============

As a matter of fact, we got the struts-example running either with this
information or with your suggestion. We still advice not to use a reference
to localhost because afterwards the app server 3.7.3 definitely hangs and a
silvermasterinit is necessary.

Urs

> -----Ursprüngliche Nachricht-----
> Von:  Ryan Cornia [SMTP:[EMAIL PROTECTED]]
> Gesendet am:  Freitag, 17. August 2001 23:04
> An:   [EMAIL PROTECTED]
> Betreff:      Re: SilverStream behind firewall
> 
> I have the same problem with SilverStream 3.7.2.
> 
> My solution was to change the  DOCTYPE to -
> 
> <!DOCTYPE struts-config SYSTEM "struts-config_1_0.dtd">
> 
> Then put struts-config_1_0.dtd in the SilverStream37\bin directory. I'm
> not satisfied with this solution, but it's the best I could come up
> with... Let me know if you find a better solution.
> 
> 
> HTH,
> Ryan
> 
> >>> [EMAIL PROTECTED] 08/17/01 01:26PM >>>
> Hi
> 
> Like some other people before, I get the error 
> 
>          resolveEntity('-//Apache Software Foundation//DTD Struts
> Configuration 1.0//EN',
> 'http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd') 
>          Not registered, use system identifier
> 
> when I want to deploy a struts app, sitting behind a firewall. I've tried
> several possibilities which helped users with other app servers, but I
> was't
> able to get it running with SilverStream. Neither worked e.g. using
> "http://localhost:80/myDB/app/dtd/struts-config_1_0.dtd"; nor using
> "c://SilverStream37/Resources/DTDCatalog/struts-config_1_0.dtd". I tried
> to
> add a struts-config_1_0.dtd entry to the index.props file in the
> DTDCatalog
> directory, but this didn't help either.
> 
> Has anybody a solution which works with SilverStream (I use 3.7.3)? Or did
> I
> do something wrong?
> 
> Thanks
> Urs
> 
> 
> 
>>> Rentenanstalt/Swiss Life - Official Partner Expo.02 <<<

Reply via email to