niedenzu

Hints and tricks for developers

Martins Amazon Wunschliste

SimpleProxyServer 5. December 2016

You need a Proxy-Server to track the traffic.
But you are not allowed to install one.
All you have is Java.

Here ist the a solution.

No Comments on SimpleProxyServer
Tags: ,
Categories: Java

Maven 5. February 2016

validate – validate the project is correct and all necessary information is available
compile – compile the source code of the project
test – test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
package – take the compiled code and package it in its distributable format, such as a JAR.
integration-test – process and deploy the package if necessary into an environment where integration tests can be run
verify – run any checks to verify the package is valid and meets quality criteria
install – install the package into the local repository, for use as a dependency in other projects locally
deploy – done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

create eclipse project of your pom.xml

mvn eclipse:eclipse
No Comments on Maven
Categories: Java Maven

PreparedStatementWrapper 23. April 2015

No Comments on PreparedStatementWrapper
Tags: ,
Categories: DB2 Java

log4j – where are my logs? 29. January 2015

Create a Servlet that shows you the log4j-configuration

String configurationOptionStr = OptionConverter.getSystemProperty(
  LogManager.DEFAULT_CONFIGURATION_KEY, 
  null);
		
String configuratorClassName = OptionConverter.getSystemProperty(
  LogManager.CONFIGURATOR_CLASS_KEY, 
  null);
						
writer.write("configurationOptionStr:" +configurationOptionStr+"n");
writer.write("configuratorClassName:" +configuratorClassName+"n");
No Comments on log4j – where are my logs?
Tags: ,
Categories: Java

repo.maven.org repo1.maven.org

Apache maven is searching in the wrong repository.

https://repo.maven.org/maven2/

But it should point to
https://repo1.maven.org/maven2/

If you call https://repo.maven.org/maven2/ with a browser you will be redirected to https://repo1.maven.org/maven2/ .
But other programs can’t follow the redirect.
In my case it was maven itself who wanted to download a plugin.

To fix this issue you have got to patch a dowanloaded jar.

The file you got to fix is called pom-4.0.0.xml.
It’S location $M2_HOME/lib/maven-model-builder-3.0.3.jar:org/apache/maven/model/pom-4.0.0.xml


  4.0.0

  
    
      central
      Central Repository
      https://repo.maven.apache.org/maven2
      default
      
        false
      
    
  

  
    
      central
      Central Repository
      https://repo.maven.apache.org/maven2
      default
      
        false
      
      
        never
      
    
  

No Comments on repo.maven.org repo1.maven.org
Categories: Java Maven

jqueryui icons in pdf 24. January 2015

We are using the jqueryui icons in our webapp.
We also generate pdfs to create a printable document that fits our needs.
This post describes how tho add the icons in general.
Later we will provide a java sample by using iText

The jqueryui icons are organized in a ui-icons_xxxxxx_256x240.png file
where 2e83ff is the rgb color code in our example ui-icons_2e83ff_256x240.png.

ui-icons_2e83ff_256x240

icons_jquery

No Comments on jqueryui icons in pdf

Maven and Eclipse

Previous steps to make:

  • Install Maven
  • Install Eclipse (luna)
mvn archetype:generate -DgroupId=org.apache.maven.archetypes 
    -DartifactId=wwsservices -DarchetypeArtifactId=maven-archetype-webapp 
    -DinteractiveMode=false

mvn archetype:generate -DgroupId=com.porsche.wwsp 
    -DartifactId=wwsframework -DarchetypeArtifactId=maven-archetype-quickstart 
    -DinteractiveMode=false
- src
  - main
    - java
    - resources
    - webapp
  - test
    - java
    - resources

- target

create a maven projekt

A pom.xml-File is created

create eclipse projekt

mvn eclipse:eclipse

import

Convert to Maven Projekt

convert_to_maven

Remove legacy build-path entries

No Comments on Maven and Eclipse
Categories: Java Maven

Ränder in iText-Tabellen. 20. January 2015

Jede Tabelle hat ihre default cell.
Wenn man eine Tabelle ohne Rahmen haben möchte, dann muss folgender code ausgeführt werden:

table.getDefaultCell().setBorder(0); //kein Rahmen

table.getDefaultCell().setBorder(1); //Rahmen oben

table.getDefaultCell().setBorder(2); //Rahmen unten – was in unserem Fall gut ist
No Comments on Ränder in iText-Tabellen.
Categories: Java

JAVA_HOME auf dem MAC 5. December 2011

wie setzt man die JAVA_HOME-Umgebungsvaribale auf dem MAC? Hier ist die Anwort, wie man dies z.B. in einem Script tun sollte.

No Comments on JAVA_HOME auf dem MAC
Categories: Java

Tomcat Authentication: Wie zeige ich den Grund für einen Authentifizierungsfehler an? 9. September 2010

Im Tomcat bietet es sich an, die J2EE Authentifizierung für geschützte Resourcen zu verwenden. Das Verfahren ist recht simpel einzurichten und wird auf vielen Seiten im Internet erklärt, z.B. hier.

Diese Einfache Methode der Authentifizierung leitet den User auf eine Login-Seite, falls er eine geschützte Resource aufrufen möchte, aber noch nicht angemeldet ist. Auf dieser Login-Seite wird ein Formular angezeigt, in das er Username und Passwort eingeben muss.

Schlägt die Authentifizierung aus irgend einem Grund fehl, wird der User auf die in der web.xml eingestellte Error-Seite weitergeleitet. In den meisten Anwendungen ist die Error-Seite die Login-Seite mit einem Hinweistext, dass die Authentifizierung nicht möglich war. Manchmal wird noch ein Link angeboten, über den der User sein Passwort zurücksetzen kann.

Bsp:

Das Problem ist jedoch, dass es auch andere Gründe für eine fehlgeschlagene Anmeldung geben kann, außer dass Username oder Passwort falsch eingegeben wurden:

  • Passwort ist abgelaufen.
  • Passwort wurde zu oft falsch eingegeben.
  • Konto wurde wegen Inaktivität gesperrt.
  • u.s.w.

Diese Informationen können dem User jedoch bei Verwendung der Standard-Authentifizierung nicht angezeigt werden.

Abhilfe schafft hier die Implementierung eines eigenen Valves zur Form-Authentifizierung. Die Klasse muss von org.apache.catalina.authenticator.FormAuthenticator abgeleitet werden (ganz richtig, das ist eine Tomcat-spezifische Klasse!). In dieser Klasse wird die Methode forwardToErrorPage() überschrieben. Die Methode wird vom Tomcat aufgerufen, nachdem die Authentifizierung fehlschlug und der User zur Error-Seite geleitet wird.

Eine Beispiel-Implementierung:


public class CustomFormAuthenticator extends FormAuthenticator {

@Override
protected void forwardToErrorPage(Request request, Response response,
LoginConfig config) throws IOException {
Integer errorReason = checkOutErrorReason();

request.setAttribute("loginErrorReason", errorReason);
super.forwardToErrorPage(request, response, config);
}

protected void checkOutErrorReason() {
//TODO hier die Ermittlung der Ursache für die
// abgelehnte Authentifizierung implementieren
return null;
}

}

In diesem Beispiel wird ein Request-Parameter gesetzt (loginErrorReason), der dann in der Error-Page ausgewertet werden kann.
Bsp.:


Integer errorReason = (Integer) request.getAttribute("loginErrorReason");

Wichtig ist, dass der CustomFormAuthenticator in einem jar im Tomcat/lib-Verzeichnis deployt wird, damit der Tomcat die Klasse findet.

Das Valve muss dann dem Tomcat noch in der Konfiguration im Context der Web-Anwendung (in server.xml) mitgeteilt werden:


...
<Context docBase="myapp" path="" reloadable="true">
<Valve className="custom.auth.CustomFormAuthenticator" />
</Context>
...

Eine andere Möglichkeit der Konfiguration besteht in der Web-Anwendung in der Datei META-INF/context.xml:


<Context>
<Valve className="custom.auth.CustomFormAuthenticator" />
</Context>
No Comments on Tomcat Authentication: Wie zeige ich den Grund für einen Authentifizierungsfehler an?
Categories: Java Tomcat

Download JDK 1.5 19. May 2010

Der Download von JDK 1.5 über die Java-Homepage ist nur noch über ein Registrierungsformular möglich, in dem man seine Email-Adresse und seinen Namen angeben muss.

Hintergrund ist, dass Java 1.5 seit 3. November 2009 nicht mehr weiterentwickelt wird (End of Service Life, EOSL) und der Download eigentlich nicht mehr möglich sein soll. Siehe Previous Releases auf der Java-Homepage.

Benötigt man aber trotzdem ein JDK 1.5, kann man das oben genannte Formular ausfüllen und sich eine Email mit dem Download-Link schicken lassen oder gleich den folgenden Download-Link benutzen:

http://java.sun.com/javase/downloads/5u22/jdk

No Comments on Download JDK 1.5
Categories: Java
Martin Rocks