Scala (fortgesetzt)

1) Anzeige einer REST Ressource klappt. Kann auch per Request Query Parameter eine ID übergeben. Jetzt muß ich hinbekommen, daß mit dieser ID etwas aus einem Backendservice geladen wird. Bisher werden nur fest kodierte Variablenwerte ausgegeben.

Das Injizieren von Services geht jetzt. Werde erst mal weiter Guice benutzen. Schaue mir später noch mal die Alternative mit Scala Bordmitteln an. Siehe dazu den Beitrag von letzter Woche.

2) Mit mvn:jetty Eclipse remote debuggen:

export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

Leider klappt das nicht so wie erwartet, da es als „Remote Java Application“ einen Fehler wegen fehlender Zeileninfo gibt. Die Lösung:

<build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>${scala-plugin-version}</version>
...
<configuration>
...
<arg>-g:line</arg>
<!-- oder -->
<arg>-g:vars</arg>
</args>
...

3) Wie hängt sich Jersey in den Server?
In meiner web.xml gibt es kein Servlet. Normalerweise muß ich ein Servlet deklarieren. Z.B. bei RESTeasy.

Gefunden: META-INF/services; dort liegt im jersey-server.jar was drin. Z.B. javax.servlet.ServletContainerInitializer. Das ist ein Interface. In der Datei steht die implementierende Klasse (JerseyServletContainerInitializer, absolut kein JavaDoc Link zu finden!). Scheinbar kann man ab Java 6 so auch aus einem JAR was in eine Webapp reinhängen. Coole Sache! (Artikel dazu) Ist scheinbar ein neues Feature in Java EE 6. java.util.ServiceLoader, Jersey Community Wiki (mit Tutorials)

4)

(Könnte mal hilfreich sein: Developing with Lift in Eclipse.)

Versuche jetzt mit Eclipse eingebauten WTP Server-Konnektor … hätte ich auch eher drauf kommen können. Folgendes noch nachinstalliert: WST Server Adapter, JST Web UI, Web Developer Tools, JST Server UI. Für Glassfish braucht man noch JEE Developer. Für Jetty vermutlich nicht. Will aber mal Glassfish ausprobieren. Dann den Glassfish Server Adapter installiert.

In der pom.xml eingetragen:

_<plugin>
____<groupId>org.apache.maven.plugins</groupId>
____<artifactId>maven-eclipse-plugin</artifactId>
____<version>2.8</version>
____<configuration>
_______<additionalProjectnatures>
__________<projectnature>org.scala-ide.sdt.core.scalanature</projectnature>
_______</additionalProjectnatures>
_______<wtpversion>1.5</wtpversion>
_______<wtpContextName>myContext</wtpContextName>
____</configuration>
_</plugin>
_<plugin>
____<artifactId>maven-compiler-plugin</artifactId>
____<configuration>
_______<source>1.6</source>
_______<target>1.6</target>
____</configuration>
_</plugin>

(Hilfreich: Beschreibung des maven-eclipse-plugins, src/main/scala mit als Source Dir.)

Advertisements
Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Eine Antwort zu Scala (fortgesetzt)

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s