Avatar billede mik28 Seniormester
26. marts 2003 - 21:16 Der er 79 kommentarer og
1 løsning

Stadig problemer med Resin

Jeg prøver som en gal at finde ud af hvorfor jeg ikke kan få Resin til at virke. Jeg bruger 3.0. Så vidt jeg kan læse mig til at burde jeg bare kunne placerer mine servlets på præcis samme måde som jeg gør i Tomcat /WEB-INF/classes og så refererer til dem med servlet. Det syntes bare ikke at ville virke. Tomcat kører uden problemer, men jeg er interesseret i at få Resin til at fungerer.
Avatar billede luctatic Nybegynder
26. marts 2003 - 21:30 #1
du har husket at ændre i din resin.conf fil så den peger det rigtige sted hen?
Avatar billede mik28 Seniormester
26. marts 2003 - 21:32 #2
Jeg har ikke ændret noget :-)
Avatar billede mik28 Seniormester
26. marts 2003 - 21:32 #3
<!--
  - 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>

      <!-- 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>
      </web-app>
    </host>
  </server>
</resin>
Avatar billede mik28 Seniormester
26. marts 2003 - 21:34 #4
Det eneste jeg kan se som ligner noget er
<compiling-loader path='webapps/WEB-INF/classes'/>
og det ser da rigtigt nok ud, eller hvad
Avatar billede luctatic Nybegynder
26. marts 2003 - 21:39 #5
Du mangler den her linie som viser hvor resin leder efter docs.

<app-dir>c:\dit-doc-dir</app-dir>

Inde i det doc-dir, lægger du din index.htm fil, og som sub-dirs ligger WEB-INF med lib og classes i det.
Avatar billede mik28 Seniormester
26. marts 2003 - 21:47 #6
Kun et lille problem. Det virker ikke
Avatar billede mik28 Seniormester
26. marts 2003 - 21:51 #7
<app-dir>d:\resin3.0\webapps\mortallovebeta</app-dir>
Avatar billede luctatic Nybegynder
26. marts 2003 - 21:52 #8
ok - jeg smider lige hele min resin.conf...

Som du kan se har jeg en <http-server> jeg ikke kan se hos dig. Og hvis du bare kopierer min .conf fil over, så husk at fjerne der hvor jeg benytter SSL. Det har du højst sansynligt ikke brug for.
<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>d:\programmer\resin-ee-2.1.7\docroot</app-dir>

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

  <!--
    - 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 mik28 Seniormester
26. marts 2003 - 21:57 #9
Det virker fint på tomcat, hvis du altså klikker på de to links. Hvis bare jeg forstod hvad det er jeg skal gøre for at få det til at virke i Resin

Resin:
http://www.web-oasen.dk:8080/mortallovebeta/

Tomcat:
http://www.web-oasen.dk/mortallovebeta/
Avatar billede luctatic Nybegynder
26. marts 2003 - 21:58 #10
Jeg får FINT fat i det øverste link.
Avatar billede mik28 Seniormester
26. marts 2003 - 21:58 #11
De to sites er fuldstændig ens
Avatar billede mik28 Seniormester
26. marts 2003 - 21:59 #12
Problemet er når du klikker på et link
Avatar billede mik28 Seniormester
26. marts 2003 - 22:00 #13
De henviser til 2 servlets, men de ligger åbenbart forkert i forhold til hvor de skal ligge i Resin
Avatar billede mik28 Seniormester
26. marts 2003 - 22:01 #14
Prøv at trykke på mortallove
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:02 #15
og du lægger servletterne i...?
Avatar billede mik28 Seniormester
26. marts 2003 - 22:02 #16
WEB-INF/classes
Avatar billede mik28 Seniormester
26. marts 2003 - 22:04 #17
Det eneste de 2 servlets laver er at returnere HTML (xhtml)
Avatar billede mik28 Seniormester
26. marts 2003 - 22:05 #18
Jeg ønsker det skal være sådan
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:05 #19
ja ja - men hvilken WEB-INF? Den i docroot, eller den i resin/web-apps?
Avatar billede mik28 Seniormester
26. marts 2003 - 22:06 #20
den sidste
Avatar billede mik28 Seniormester
26. marts 2003 - 22:07 #21
webapps/mortallovebeta/WEB-INF/classes
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:08 #22
ok, ifølge din config, ligger din index.html fil i d:\resin3.0\webapps\mortallovebeta\.
Dvs at dine servletter skal ind i d:\resin3.0\webapps\mortallovebeta\WEB-INF\classes\
Avatar billede mik28 Seniormester
26. marts 2003 - 22:08 #23
Der er jo der de ligger
Avatar billede mik28 Seniormester
26. marts 2003 - 22:09 #24
Det er det jeg ikke forstår
Avatar billede mik28 Seniormester
26. marts 2003 - 22:10 #25
Du kommer jo også fint ind på index.html siden
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:12 #26
BTW - du behøver ikke at have din docroot sat til at være i resin\web-apps. Du kan godt have den liggende et andet sted så dine dokumenter ikke er afhængige af serveren.
Men ud over det kan jeg ikke se hvorfor den ikke virker. Tror du skal have fat i disky. Han kan højst sandsynligt hjælpe med det her. Han er her nok engang i morgen tidligt.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:12 #27
Ham havde jeg fat i igår
Avatar billede mik28 Seniormester
26. marts 2003 - 22:13 #28
Faktisk havde jeg ham koblet op via VNC
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:14 #29
Ja ja - men det tyder jo på, at selvom du har dine servletter liggende i \mortallovebeta\WEB-INF\classes så kan den alligevel ikke finde dem. Dvs problemet ligger ikke i docroot'en, men placeringen af servlets.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:14 #30
Altså direkte på min server
Avatar billede mik28 Seniormester
26. marts 2003 - 22:15 #31
Åbenbart
Avatar billede mik28 Seniormester
26. marts 2003 - 22:15 #32
*SUK*
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:15 #33
Ok - kan godt være det er et tåbeligt forslag så - men prøvet reinstall? Har selv haft et problem der ikke gav mening fordi det ikke burde være der. En reinstall klarede det fint.

Muligvis prøv at lægge resin ned på default port 80 istedet for 8080.

Muligvis prøv at flytte \mortallovebeta ud af \resin\web-aps bare som forsøg.

Aner ikke om det virker, men er da forsøget værd.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:16 #34
Jeg kører jo tomcat på port 80
Avatar billede mik28 Seniormester
26. marts 2003 - 22:17 #35
Jeg har lige reinstaleret
Avatar billede mik28 Seniormester
26. marts 2003 - 22:18 #36
Jeg lader det bare kører på tomcat indtil jeg finder ud af Resin
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:18 #37
ja jeg ved godt du kører tomcat på port 80 - man kan jo flytte den til 8080 et øjeblik, eller port 12.000 for all I care :D Var et forslag.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:20 #38
Jeg er sikker på du bed hvorfor jeg er træt af tomcat *lol*
Avatar billede mik28 Seniormester
26. marts 2003 - 22:22 #39
Jeg er iøvrigt glad for al det input jeg kan få
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:22 #40
Det kan være problemet ligger i web.xml i øvrigt. Har ikke selv haft brug for at kigge der, men hvis servletten ikke ligger i deployment descriptoren kan den jo ikke vises.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:23 #41
Det kan da godt være :-)
Avatar billede mik28 Seniormester
26. marts 2003 - 22:25 #42
Man skal vist skrive noget i den her retning

<web-app>
  <servlet-mapping url-pattern='/hello'
                  servlet-name='hello-world'/>

  <servlet servlet-name='hello-world'
          servlet-class='test.HelloWorld'>
    <init-param greeting='Hello, World'/>
</web-app>
Avatar billede mik28 Seniormester
26. marts 2003 - 22:26 #43
Jeg fatter bare ikke hvad der er hvad
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:27 #44
Prøv også at slette \mortallovebeta\work og \mortallovebeta\tmp og genstart serveren.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:28 #45
sådan
Avatar billede mik28 Seniormester
26. marts 2003 - 22:29 #46
Det gjorde ikke nogen forskel
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:29 #47
web-describtoren kan jeg ikke hjælpe med. Plejer ikke at lave servlets :D
Avatar billede mik28 Seniormester
26. marts 2003 - 22:30 #48
Fair nok
Avatar billede mik28 Seniormester
26. marts 2003 - 22:31 #49
Vil du se hvordan man administerer mit site?
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:33 #50
jow jow - skyd løs.
Avatar billede arne_v Ekspert
26. marts 2003 - 22:33 #51
Fra et tidligere forsøg:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>test.HelloWorldServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorldServlet</url-pattern>
  </servlet-mapping>
</web-app>

servlet/servlet-name = servlet-mapping/servlet-name = bare et navn
servlet/servlet-class = klasse som indeholder servlet
servlet-mapping/url-pattern = URL for servlet (prefixes med http://xxx.xxx.xxx:n/webappname)
Avatar billede mik28 Seniormester
26. marts 2003 - 22:34 #52
Avatar billede mik28 Seniormester
26. marts 2003 - 22:35 #53
Prøv at uploade et mp3 nummer under tracks, altså undet All The Beuaty
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:38 #54
Hmmm tja... vel ok hvis man får brug for det. Kan mere se dette ville være en fordel hvis man kunne bruge det til at tilføje nyheder eller lignende, eller hvis koden til den nuværende side stod i feltet. Som det står nu virker det lidt omsomst da de færreste vel sidder et eller andet tilfældigt sted og udvikler.

BTW vil jeg anbefale dig at smide loginprocessen over en SSL forbindelse.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:39 #55
Det kan du da bare gøre
Avatar billede mik28 Seniormester
26. marts 2003 - 22:39 #56
altså tilføje nyheder
Avatar billede mik28 Seniormester
26. marts 2003 - 22:40 #57
under news
Avatar billede mik28 Seniormester
26. marts 2003 - 22:40 #58
new entry
Avatar billede mik28 Seniormester
26. marts 2003 - 22:42 #59
Det er ment som et nemt interface for en som gerne vil ligge noget på nettet
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:44 #60
Ja ja - men vel ikke så ofte man ændrer en hel side som man FX gør under START. Men virker ok. Ikke altid lige logisk, men ok.
Avatar billede arne_v Ekspert
26. marts 2003 - 22:44 #61
Hvis det ville være et problem hvis nogen tappede linien og
hapsede et brugernavn/password, så er HTTPS/SSL et must.
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:46 #62
Tja - at hoppe over på SSL tager jo for brugeren kun få secs, og for dig som udvikler tager det jo max 20 mins at oprette. Jeg gør det som regel altid bare af ren vane.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:47 #63
Jeg ved hvad det er men ikke hvordan man opretter det
Avatar billede mik28 Seniormester
26. marts 2003 - 22:49 #64
Tak for hjælpen. Skal jeg lukke spørgsmålet?
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:50 #65
Du bruger et af javas egne værktøjer, keytool. Er masser af guides til opsætning af SSL på nettet. Søg på google for at få de præcise tutorials til opsætning af SSL.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:51 #66
Jeg bruger JCreator
Avatar billede arne_v Ekspert
26. marts 2003 - 22:51 #67
Normalt enabler man det på en anden port, så man kører HTTP på en
port og HTTPS på en anden port.

80 og 443 eller 8080 og 8443
Avatar billede mik28 Seniormester
26. marts 2003 - 22:52 #68
Jeg vil meget gerne kører ssl
Avatar billede luctatic Nybegynder
26. marts 2003 - 22:53 #69
Tja - lad det stå. Kan jo være der kommer en der ved hvilket sted i resin problemet ligger. Men luk det om en uges tid hvis intet sker.
Avatar billede arne_v Ekspert
26. marts 2003 - 22:53 #70
Og man bruger ikke HTTPS/SSL hvis det ikke er nødvendigt på
high volume ting.

Det kan være ret CPU krævende på serveren.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:54 #71
Min "server" er en pII 450
Avatar billede mik28 Seniormester
26. marts 2003 - 22:54 #72
og den kører allerede jeg ved ikke hvad
Avatar billede arne_v Ekspert
26. marts 2003 - 22:55 #73
Tomcat server.xml har følgende:

    <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <!--
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
              port="8443" minProcessors="5" maxProcessors="75"
              enableLookups="true"
          acceptCount="100" debug="0" scheme="https" secure="true"
              useURIValidationHack="false" disableUploadTimeout="true">
      <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
              clientAuth="false" protocol="TLS" />
    </Connector>
    -->

det er vist ret indlysende how to enable.

Resin resin.conf har:

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

lige så nemt.
Avatar billede mik28 Seniormester
26. marts 2003 - 22:56 #74
Det hjælper mig bare ikke når Resin ikke vil virke
Avatar billede arne_v Ekspert
26. marts 2003 - 22:56 #75
Altså nogle få brugere er helt uproblematisk.

Vi skal op i high-volume førend det bliver et problem.
Avatar billede arne_v Ekspert
26. marts 2003 - 22:57 #76
Du kan jo køre HTTPS/SSL med Tomcat !

:-)
Avatar billede mik28 Seniormester
26. marts 2003 - 22:58 #77
Det kan jeg jo vælge. Det irriterer mig bare grænseløst at jeg ikke kan få Resin til at virke
Avatar billede mik28 Seniormester
26. marts 2003 - 23:01 #78
Hvor skal jeg ligge det i server.xml i tomcat
Avatar billede magoo20000 Nybegynder
26. marts 2003 - 23:08 #79
Avatar billede mik28 Seniormester
11. april 2003 - 14:35 #80
Lukker, oprydning ;-)
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