Avatar billede superib Nybegynder
16. maj 2003 - 12:32 Der er 6 kommentarer og
2 løsninger

Session problem... *HASTER*

Hejsa...

Hvorfor giver det her:
---------------------------
<%@ page session="true"%>
<%@ page import="projekt.Admin"%>
<%
if(session.getAttribute("medab")!= null){
    Admin medab = (projekt.Admin)session.getAttribute("medab");
    out.print("session.getAttribute(\"medab\")!= null");
}
else{
out.print("session.getAttribute(\"medab\")== null");
Admin medab = new projekt.Admin(request.getParameter("bruger"), request.getParameter("pass"));
session.setAttribute("medab", medab);
}

if(medab.tjekLogin()){
}
---------------------------

Den her fejl:
---------------------------
500 Servlet Exception
/projekt/admin/oversigt.jsp:25: cannot resolve symbol
symbol  : variable medab
location: class _projekt._admin._oversigt__jsp
      if(medab.tjekLogin()){
        ^
1 error
---------------------------

Det køre på en Resin server på en XP Pro box...

Er der ellers noget i vejen, der ville få det her session forsøg til at ende i en total fiasko??

/Jesper
Avatar billede arne_v Ekspert
16. maj 2003 - 12:41 #1
Variabelen medab er gået ud af scope !
Avatar billede arne_v Ekspert
16. maj 2003 - 12:42 #2
Prøv med:

Admin medab;
if(session.getAttribute("medab")!= null){
    medab = (projekt.Admin)session.getAttribute("medab");
    out.print("session.getAttribute(\"medab\")!= null");
}
else{
out.print("session.getAttribute(\"medab\")== null");
medab = new projekt.Admin(request.getParameter("bruger"), request.getParameter("pass"));
session.setAttribute("medab", medab);
}

if(medab.tjekLogin()){
}
Avatar billede disky Nybegynder
16. maj 2003 - 12:50 #3
ret til:
<%@ page session="true"%>
<%@ page import="projekt.Admin"%>
<%
Admin medab;
if(session.getAttribute("medab")!= null){
    medab = (projekt.Admin)session.getAttribute("medab");
    out.print("session.getAttribute(\"medab\")!= null");
}
else{
out.print("session.getAttribute(\"medab\")== null");
medab = new projekt.Admin(request.getParameter("bruger"), request.getParameter("pass"));
session.setAttribute("medab", medab);
}

if(medab.tjekLogin()){
}


Dit problem opstår fordi Admin objektet bliver lavet inden i din if{} og lever derfor kun derinde, men du forsøger at bruge den udenfor.

Min rettelse, gør at objektet er defineret udenfor dette scope og derfor kan den også tilgåes udenfor scopet hvor objektet er instantieret.
Du har rigtigt nok instantieret objektet i begge tilstande af din if.
Avatar billede superib Nybegynder
18. maj 2003 - 13:07 #4
Wuhuuu... det virker nu... Er der helt tifældigvis nogen af jer der kan fortælle mig hvordan man sætter URL rewriting til i Resin 3.0??
Avatar billede arne_v Ekspert
18. maj 2003 - 13:15 #5
Er der ikke noget:

<session-config>
...
        <enable-cookies>true</enable-cookies>
        <enable-url-rewriting>true</enable-url-rewriting>
...

i resin.conf ?
Avatar billede superib Nybegynder
18. maj 2003 - 14:20 #6
Det har jeg kigget efter... men syntes ikke at kunne finde det...

<!--
  - Temporary minimal resin.conf during 3.0 refactoring.
  -->
<resin xmlns="http://caucho.com/ns/resin">
  <!--
    - Logging configuration for the JDK logging API.
    -->
  <log id='' level='info' path='stderr:' timestamp='[%H:%M:%S.%s] '/>

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

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

  <!--
    - Sample database pool configuration
    - The JDBC name is java:comp/env/jdbc/test
    -->
  <database>
    <name>jdbc/test</name>
    <driver-class>com.caucho.jdbc.mysql.Driver</driver-class>
    <driver-url>jdbc:mysql_caucho://localhost:3306/test</driver-url>
    <user></user>
    <password></password>
    <max-connections>20</max-connections>
    <max-idle-time>30s</max-idle-time>
  </database>

  <server>
    <!-- The http port -->
    <http id='' host='*' port='8080'/>

    <!--
      - SSL port configuration:
      -
      - <http port=8443>
      -  <openssl>
      -    <certificate-file>keys/gryffindor.crt</certificate-file>
      -    <certificate-key-file>keys/gryffindor.key</certificate-key-file>
      -    <password>test123</password>
      -  </openssl>
      - </http>
      -->

    <!--
      - The local cluster, used for load balancing and distributed
      - backup.
      -->
    <cluster>
      <srun id='' host='127.0.0.1' port='6802'/>
    </cluster>

    <!--
      - If starting bin/resin as root on Unix, specify the user name
      - and group name for the web server user.
      -
      - <user-name>resin</user-name>
      - <group-name>resin</group-name>
      -->

    <!--
      - Default host configuration applied to all virtual hosts.
      -->
    <host-default>
      <class-loader>
        <!--
          - If true, the classloader order follows the Servlet spec.
          - If false, the classloader order follows the JDK spec.
          -->
        <servlet-hack>false</servlet-hack>

        <compiling-loader path='webapps/WEB-INF/classes'/>
        <library-loader path='webapps/WEB-INF/lib'/>
      </class-loader>

      <!--
        - With another web server, like Apache, this can be commented out
        - because the web server will log this information.
        -->
      <access-log path='logs/access.log'
            format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
            rollover-period='1W'/>

      <!-- creates the webapps directory for .war expansion -->
      <web-app-deploy path='webapps'/>
    </host-default>

    <!-- includes the web-app-default for default web-app behavior -->
    <resin:include href="app-default.xml"/>

    <!-- configures the default host, matching any host name -->
    <host id=''>
      <document-directory>doc</document-directory>

      <!-- configures the root web-app -->
      <web-app id='/'>
        <!-- adds xsl to the search path -->
        <class-loader>
          <simple-loader path="$host-root/xsl"/>
        </class-loader>

        <servlet-mapping url-pattern="/servlet/*" servlet-name="invoker"/>
      </web-app>
    </host>
  </server>
</resin>
Avatar billede arne_v Ekspert
18. maj 2003 - 14:24 #7
Ifølge:
  http://www.caucho.com/resin-3.0/config/sessions.xtp
så har Resin 3 også et session-config tag, så prøv og sæt det ind !
Avatar billede superib Nybegynder
19. maj 2003 - 09:14 #8
Det kan jeg sku ikke lige finde ud af... jeg lukker bare her... og laver et nyt spm... så der også flere der kan være med... ;)
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