Avatar billede luctatic Nybegynder
13. marts 2003 - 13:22 Der er 8 kommentarer

WAR filer

Jeg kan huske tidligere at nogen nævnte at man kunne tage hele sit docroot, og pakke som en enkelt WAR fil. Denne var fil kunne man så lægge ind i sit web-apps bibliotek og så pakkede serveren dem ud. Det har jeg fået gjort, og den kører PT på localhost. WAR filen hedder BAO.war og korrekt pakker Resin den ud til http://localhost/bao.

Nu kommer guldspørgsmålet så - hvordan får jeg så fat i hvad der er inden i den? Kalder jeg bare http://localhost/boa/side.jsp, hvis side.jsp tidligere lå i / i docroot?

Fordi når jeg prøver præcis det, får jeg en fejl 404 - /side.jsp was not found on this server, samtidig med at den ændrer URL fra http://localhost/BAO til http://localhost/side1.jsp, hvilket jo ikke helt var meningen, eller var det?

WAR filen indeholder:
/side1
/side2
/WEB-INF/classes
/WEB-INF/lib (som indeholder tre .jar filer)


Any clues til hvad der går galt?
Avatar billede arne_v Ekspert
13. marts 2003 - 13:38 #1
Nu kender jeg ikke Resin ret godt.

Men hvis du deployer bao.war og side1.jsp ligger i roden af
bao.war (kan checkes med jar tvf bao.war), så bør
http://localhost:8080/bao/side1.jsp virke !

NB: Vær forsigtig med bao versus BAO.
Avatar billede arne_v Ekspert
13. marts 2003 - 13:39 #2
Hvis Resin lytter på port 80, så skal du naturligvis ikke bruge 8080.

:-)
Avatar billede luctatic Nybegynder
13. marts 2003 - 14:07 #3
dvs jeg skal i docroot bare lave en response.sendRedirect("/bao/side1.jsp") og så skulle det virke. Men hvorfor ændrer den URL fra http://localhost/bao til http://localhost/side1.jsp?

Og når jeg så på side1.jsp har et link til side2 via <a href:"side2.jsp"> så ændrer den igen URL fra http://localhost/bao/side1.jsp til http://localhost/side2.jsp hvor filen selvfølgelig ikke kan findes og der så kommer en java.io.FileNotFoundException.
Avatar billede arne_v Ekspert
13. marts 2003 - 14:21 #4
Nej jeg mener at sendRedirect er relativ i forhold til applikationen.

Så jeg tror at sendRedirect("/side1.jsp") vil blive oversat
til http://localhost/bao/side1.jsp !
Avatar billede arne_v Ekspert
13. marts 2003 - 14:22 #5
Hm.

Der er et eller andet mystisk her.

Har du rettet i Resins konfigurations fil ?
Avatar billede luctatic Nybegynder
13. marts 2003 - 14:26 #6
Ja. Har rettet port, indstilling af  SSL, hvor docroot er, og lignende. Men intet der skulle få den til at overføre fra en URL til en anden når man benytter WAR filer.

Samtidig gider den ikke godtage alle .jar filer i /WEB-INF/lib. mail.jar og activation.jar (der bliver brugt til at sende mails med via javamail) vil den ikke godtage hvis den ligger i hverken den virtuelle servers web-inf, eller i /resin/lib/. Den SKAL ind i JRE'ens /lib/ext dir for at den virker.
Avatar billede arne_v Ekspert
13. marts 2003 - 14:47 #7
Hm.

Jeg har som sagt ikke rigtig nogen erfarinbg med Resin.

Måske skulle poste relevante udsnit af Resin konfiguration
(SSL er ligegyldigt, men docroot kunne være interessant).

Og se om nogle Resin hajer falder over noget.
Avatar billede luctatic Nybegynder
14. marts 2003 - 11:04 #8
Kan da sagtens smide resin.conf med herind, bare for en sikkerhedsskyld, men jeg tror den nemmeste måde at ordne den her opsætning af serveren hos klienten bliver at vi selv gør det. Skal jo alligevel klare databaseinstallation, JRE+javamail opsætning og andet godt. Har overvejet at lave en batch fil til at klare det, men nu ser vi hvad vi får tid til. Har jo en deadline der skal overholdes og noget dokumentation der skal skrives - desværre.


<caucho.com>

<!--
  - Resin logging.  Debugging is also available with different values
  - for id.
  -->
<log id='/log' href='stderr:' timestamp='[%Y-%m-%d %H:%M:%S.%s]'/>

<!-- Security providers.  Adding JSSE looks like:
  - <security-provider id='com.sun.net.ssl.internal.ssl.Provider'/>
  -->

<!--
  - You can change the compiler to "javac" or jikes.
  - The default is "internal" only because it's the most
  - likely to be available.
  -->
<java compiler="internal" compiler-args=""/>

<!--
  - Sample database pool configuration
  - The JDBC name is java:comp/env/jdbc/test
  - <resource-ref>
  -  <res-ref-name>jdbc/test</res-ref-name>
  -  <res-type>javax.sql.DataSource</res-type>
  -  <init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
  -  <init-param url="jdbc:mysql_caucho://localhost:3306/test"/>
  -  <init-param user=""/>
  -  <init-param password=""/>
  -  <init-param max-connections="20"/>
  -  <init-param max-idle-time="30"/>
  - </resource-ref>
  -->


<!--
  - Use precompiled JSP classes if available.
  - 'static-encoding' - optimization if you stick to one character set
  -->
<jsp precompile='true' static-encoding='true' recompile-on-error='true'/>

<http-server>
  <!--
    - The root file directory of the server.  Apache users will change
    - this to /usr/local/apache/htdocs and IIS users will change it
    - to d:\inetpub\wwwroot
    -->
  <app-dir>c:\sun\appserver7\Test\docroot</app-dir>

  <!-- the http port -->
  <http port='80'/>

  <!--
    - The srun port, read by both JVM and plugin
    - 127.0.0.1 is the localhost
    -->
  <srun host='127.0.0.1' port='6802'/>

<http port=443>
<ssl>true</ssl>
<key-store-type>pkcs12</key-store-type>
<key-store-file>keys/Private.pfx</key-store-file>
<key-store-password>fiskfisk</key-store-password>
</http>


  <!--
    - For production sites, change class-update-interval to something
    - like 60, so it only checks for updates every minute.
    -->
  <class-update-interval>2</class-update-interval>

  <!--
    - If true, the classloader order follows the Servlet spec.
    - If false, the classloader order follows the JDK spec.
    -->
  <servlet-classloader-hack>false</servlet-classloader-hack>

  <!--
    - Select an error page to display when the connection fails.
    -
    - <error-page exception='connection' location='/my-error-page.html'/>
    -->

  <!-- To disable /caucho-status, set this to false -->
  <caucho-status>true</caucho-status>

  <!-- maximum number of threads -->
  <thread-max>150</thread-max>

  <!--
    - How many threads to wait for keepalives.  Should be at least the
    - number of Apache processes to get good performance.
    -->
  <thread-keepalive id='100'/>

  <!--
    - How long an idle keepalive connection should listen to the socket.
    -->
  <request-timeout id='30s'/>

  <!--
    - How many sockets to hold in the buffer before failing requests.
    -->
  <accept-buffer-size id='256'/>
  <!--
    - Maximum number of request threads which will wait for a socket.
    -->
  <thread-min id='5'/>

  <!--
    - Ping to test if the web server is still up.  You can uncomment this
    - and point it to pages on the webserver that exercise your main
    - logic (like database access).  If the GET fails, it will restart
    - the server.  This will catch deadlocks, but not JDK freezes.
    -
    - <ping sleep-time='1m' retry-count='3' retry-time='1s'>
    -  <url>http://localhost:8080/ping/ping.jsp</url>
    - </ping>
    -->

  <!--
    - Enables/disables exceptions when the browser closes a connection.
    -->
  <ignore-client-disconnect>true</ignore-client-disconnect>

  <!--
    - Enable internal caching.
    - 'dir' is the directory containing the cache
    - 'size' is the memory size in kb
    - 'entries' is the total number of entries
    -->
  <cache dir='cache' size='1024' entries='8192'/>

  <!--
    - Expires time for a cacheable file.  Production sites will
    - normally change this to '15m'
    -->
  <cache-mapping url-pattern='/' expires='2s'/>

  <!--
    - servlet configuration outside the <host> is a default for all hosts.
    -->
  <servlet-mapping url-pattern='*.xtp' servlet-name='xtp'/>
  <servlet-mapping url-pattern='*.jsp' servlet-name='jsp'/>

  <!--
    - set the pages to be used as welcome (index) files
    -->
  <welcome-file-list> index.xtp, index.jsp, index.html</welcome-file-list>

  <!-- default host if no other host matches -->


  <host id=''>
    <!--
      - The standalone server should uncomment for access logging.
      - With another web server, like Apache, the web server will
      - log this information.
    <access-log id='log/access.log'
          format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'/>
      -->

    <error-log id='log/error.log'/>

    <!--
      - Specifies an automatically-expanding .war dir.  Any foo.war
      - file will be expanded to a /foo application.
      -->
    <war-dir id='webapps'/>

    <web-app id='/'>
      <!--
        - The classpath directive may be repeated.  Source is optional
        - Servlets and beans generally belong in WEB-INF/classes
        -->
      <classpath id='WEB-INF/classes'
                source='WEB-INF/classes'
                compile='true'/>

      <session-config>
        <session-max>4096</session-max>
        <session-timeout>30</session-timeout>
        <enable-cookies>true</enable-cookies>
        <enable-url-rewriting>true</enable-url-rewriting>

        <!--
          - Store sessions in the filesystem, so they can persist across
          - servlet and class changes.
          -
          - Uncomment this during development.
          -->
        <!--
          -  <file-store>WEB-INF/sessions</file-store>
          -->
      </session-config>

      <!-- enable multipart-mime/form processing -->
      <!--
        - <multipart-form upload-max='-1'/>
        -->

      <!-- /~user maps to user directories -->
      <path-mapping url-regexp='^/~([^/]*)' real-path='/home/$1/public_html/'/>
    </web-app>
</host>
</http-server>
</caucho.com>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester