Avatar billede frosig Nybegynder
17. september 2002 - 12:48 Der er 13 kommentarer og
2 løsninger

Beans med Resin

Nu har det holdt mig oppe den halve nat, så nu er det på tide, at jeg spørger jer om hjælp :-)

Hvad skal jeg skrive i resin.conf for at få min resin-server til at understøtte beans? Jeg kan simpelthen ikke finde det på www.caucho.com
Avatar billede jangravgaard Nybegynder
17. september 2002 - 16:50 #1
Min conf fil ser ud som følger og jeg har ikke gjort noget bestemt for at resin serveren skal understøtte beans.

<!--
  - The Resin configuration file.
  -
  - This example file is more complicated than is needs to be because
  - it makes several configurations explicit that can be simplified and
  - because it needs to configure the examples.
  -
  - Look in conf/samples for more realistic sample configurations.
  -  conf/samples/simple.conf - a simple, basic configuration
  -  conf/samples/deploy.conf - a simple configuration for deployment
  -
  - The configuration is based on a purely element-based XML.  To make
  - it easier to read, attributes can be used as syntactic sugar.
  -
  - The following are equivalent:
  - <foo><bar>13</bar></foo>  - canonical representation, but verbose
  - <foo bar=13/>            - typical configuration
  - <foo><bar id=13/></foo>  - sometimes useful
  -->
<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>doc</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'/>

  <!--
    - How to add SSL:
    -
    - <http port=8443>
    -  <ssl>true</ssl>
    -  <key-store-type>pkcs12</key-store-type>
    -  <key-store-file>keys/server_cert.p12</key-store-file>
    -  <key-store-password>changeit</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>true</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'/>

  <!--
    - 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'/>

  <!-- 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='/'>
      <!-- how often to check servlets for changes (id used for brevity) -->
      <class-update-interval id='2'/>

      <!--
        - 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'/>

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

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

      <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'/>
        -->

      <!--
        - special mapping so /servlet/pkg.MyServlet invokes pkg.MyServlet
        -->
      <servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>

      <!--
        - The following entries configuration the examples.  You may safely
        - delete anything from here down.
        -->

      <!-- Application init parameters, see Env.java to get the values -->
      <context-param info='An application information string'/>

      <!-- snoop-servlet handles all urls starting with /snoop -->
      <servlet-mapping url-pattern='/snoop/*' servlet-name='snoop-servlet'/>

      <!-- configure snoop-servlet with init parameters -->
      <servlet servlet-name='snoop-servlet' servlet-class='Env'>
        <init-param info='A servlet information string'/>
      </servlet>

      <!-- /~user maps to user directories -->
      <path-mapping url-regexp='^/~([^/]*)' real-path='/home/$1/public_html/'/>
    </web-app>

    <!-- Define applications (ServletContexts) for the examples.
      - Since applications are entirely separate from one another,
      - including session variables and servlet-mappings, the
      - servlet-mapping declarations need to be repeated.
      -->
    <web-app id='java_tut'/>

    <web-app id='examples/basic'/>

    <web-app id='examples/tags'/>

    <web-app id='examples/tictactoe'/>

    <web-app id='examples/navigation'/>

    <web-app id='examples/xsl'/>

    <web-app id='examples/templates'>
      <servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
      <servlet-mapping url-pattern='/GuestJsp' servlet-name='GuestJsp'/>
      <servlet-mapping url-pattern='/GuestXtp' servlet-name='GuestXtp'/>
      <servlet-mapping url-pattern='/RSS' servlet-name='jsp.RSS'/>

      <servlet servlet-name='GuestJsp' servlet-class='jsp.GuestJsp'/>
      <servlet servlet-name='GuestXtp' servlet-class='jsp.GuestXtp'/>
    </web-app>

    <web-app id='/examples/login'/>
  </host>

  <!--
    - Known broken browsers.  These should no longer be necessary, but
    - you can uncomment them if they become a problem.
    -
    - <browser-mapping regexp="MSIE 4\.0b2" force10/>
    - <browser-mapping regexp="RealPlayer 4\.0" force10/>
    - <browser-mapping regexp="Java/1\\.0" force10/>
    - <browser-mapping regexp="JDK/1\\.0" force10/>
    -->
</http-server>
</caucho.com>
Avatar billede frosig Nybegynder
17. september 2002 - 16:56 #2
Hvordan kalder du så dine beans fra f.eks. en jsp-side?
Avatar billede disky Nybegynder
17. september 2002 - 17:10 #3
sådanne her:

<%
    MinBean minBean=new MinBean();
    minBean.LavNogetFornuftigt();
%>

osv.

Beans er bare almindelig java klasser, der evt. kan have noget speciel funktionalitet knyttet specifikt til websites.
Avatar billede jangravgaard Nybegynder
17. september 2002 - 17:17 #4
dette eksempel er til login:

<jsp:useBean id="rsp" scope="session" class="funktioner.Respons" />
<jsp:useBean id="bruger" scope="session" class="funktioner.BrugerSession" />
<%
    rsp = bruger.login(request.getParameter("brugernavn"),request.getParameter("adgangskode"));
    if (rsp.getNummer()>0){%>
    <jsp:forward page='ovelse/ovelsestart.jsp' />
    <%}
    else{%><%=rsp.getTekst()%><%}
%>
Avatar billede disky Nybegynder
17. september 2002 - 17:20 #5
jan jeg håber du checker for 'null' inden du bruge de parametere i din bean

Øh du har et bean objekt der hedder 'rsp' derefter overskrive du rsp fra din login metode, giver det nu også lige mening ?
Avatar billede jangravgaard Nybegynder
17. september 2002 - 17:20 #6
de to første linjer opretter en instans af hhv klassen Respons og BrugerSession, herefter refererer du til instansen via id som er hhv. rsp og bruger
Avatar billede jangravgaard Nybegynder
17. september 2002 - 17:22 #7
disky : det klarer jeg med javascript, men jeg burde nok også checke for det i jsp
hvor mener du jeg overskriver "rsp" ?
Avatar billede disky Nybegynder
17. september 2002 - 17:37 #8
<jsp:useBean id="rsp" scope="session" class="funktioner.Respons" />

Den linie instantiere et bean objekt med session scope, hvis det ikke findes, eller genbruger det som findes.


    rsp = bruger.login(request.getParameter
Den linie overskriver den bean du lige har hentet fra session stacken, og gør derfor øverste linie overflødig.

Hvad bruger du javascript til her ? Det er der ingen grund til.
Avatar billede frosig Nybegynder
17. september 2002 - 18:58 #9
Hvad hvis jeg leger med Enterprise Java Beans... Hvad skal jeg så gøre? Jeg ved godt, at det ikke var mit oprindelige spørgsmål, men det var vel egentlig det jeg mente
Avatar billede disky Nybegynder
17. september 2002 - 19:17 #10
Så skal du have EE versionen af Resin
Avatar billede frosig Nybegynder
17. september 2002 - 19:51 #11
disky >> Det har jeg, men jeg aner ikke, hvad jeg så skal gøre. Har du ikke et link som beskriver hvad jeg skal gøre.
Avatar billede disky Nybegynder
17. september 2002 - 20:15 #12
ikke udover caucho's dokumentation
Avatar billede frosig Nybegynder
17. september 2002 - 20:46 #13
Jeg tror, at jeg dropper det...

Hele historien bag, er at jeg, i forbindelse med min uddannelse, skal lære at lave Enterprise Java Beans, men vi bruger den J2EE-server, der følger med J2EE fra Sun. Det kunne jo være sjovt, hvis jeg kunne få min resin-server til at virke, så jeg bare skal lægge mine java-filer op, hvorefter det hele spillede.

Hvis I har en løsning, som jeg lige kan bruge så vil jeg være glad, men det er ikke så vigtigt. Tak for hjælpen til jer begge.
Avatar billede jangravgaard Nybegynder
17. september 2002 - 20:54 #14
disky : jeg er ret sikker på at jeg får en fejl hvis jeg udelader min usebean linje.
Javascript bliver brugt på side før den koden kommer fra og dér skal felterne være udfyldt.
Avatar billede disky Nybegynder
17. september 2002 - 20:56 #15
nu er det meget lang tid siden jeg har rodet med J2ee, men det er noget med nogle web.xml filer du skal bruge til at konfigurere med.

jan:
Jeg er ikke 100% sikker,
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