Notes by Fang

Displaying keyword search results 1 - 10
Created by Fang on March 30, 2012 10:07:25    Last update: March 08, 2013 13:41:57
After a user resets a password, I want to force the user to change the password before she gets access to secured content. This is usually done with a servlet filter. But with Spring MVC, you can also use a HandlerInterceptor . According to Spring JavaDoc: HandlerInterceptor is basically similar to a Servlet 2.3 Filter, but in contrast to the latter it just allows custom pre-processing with the option of prohibiting the execution of the handler itself, and custom post-processing. Filters are more powerful, for example they allow for exchanging the request and response objects that are handed down the chain. Note that a filter gets configured in web.xml, a HandlerInterceptor in the application context. As a basic guideline, fine-grained handler-related preprocessing tasks are candidates...
Created by Fang on January 14, 2013 14:00:36    Last update: January 14, 2013 14:00:36
Cause: Hibernate reverse engineering generated a column mapping like this: @Version @Column(name="VERSION", nullable=false... Fix: change the mapping to: @Column(name="VERSION", length=20) public Strin...
Created by Fang on January 04, 2013 14:16:58    Last update: January 04, 2013 14:16:58
Junit does not support specifying execution order of tests until 4.11. The methods were simply invoked in the order returned by the reflection API. So, the tests are executed in a unspecified but deterministic order, i.e., you have no control over the order of execution, but if you repeat the tests, they are run in the same sequence each time. For version 4.11, you can specify the order with the FixMethodOrder annotation: import org.junit.runners.MethodSorters; imp... From the release notes : Test execution order By design, JUnit does not specify the execution order of test method invocations. Until now, the methods were simply invoked in the order returned by the reflection API. However, using the JVM order is unwise since the Java platform does not specify...
Created by Fang on January 04, 2013 08:00:37    Last update: January 04, 2013 08:00:37
This is a Maven POM that prints out some built-in project properties: <project xmlns="http://maven.apache.org/PO... Output: $ mvn validate [INFO] Scanning for projects.....
Created by Fang on July 25, 2012 12:52:40    Last update: September 14, 2012 13:37:57
Summarized from official JAX-WS documentation : Sending and Receiving SOAP Headers To send a SOAP header: HelloService helloService = new HelloService(); ... To receive a SOAP header: List<Header> inboundHeaders = bp.getInboundHeaders... Message logging On the client side, set system property: com.sun.xml.ws.transport.http.client.HttpTransport... On the server side, set system property: com.sun.xml.ws.transport.http.HttpAdapter.dump=tru... Propagation of Server-side Stacktrace Propagation of Stack trace is on by default. The whole stacktrace (including nested exceptions) is propagated in the SOAP Fault and the complete exception stacktrace is visible to the client as cause of SOAPFaultException . To turn off stack trace propagation, set this system property on the server: com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptu... Update: At least on the client side, the property name has been changed to: com.sun.xml.internal.ws.transport.http.client.Http... The messages are dumped to stdout . For...
Created by Fang on July 25, 2012 12:59:47    Last update: July 25, 2012 12:59:47
Example code: import javax.xml.ws.BindingProvider; import jav... Wierdly, even though the response context ( ctx ) itself is a Map, you cannot iterate through the keys. This: for (String key: ctx.keySet()) { logger.inf... fails: WARN : InternalError - Handler execution resulted ...
Created by Fang on June 29, 2012 14:56:21    Last update: June 29, 2012 14:56:21
To delete a cookie in Java servlet API, call Cookie.setMaxAge(0) . According to Servlet API JavaDoc : A positive value indicates that the cookie will expire after that many seconds have passed. Note that the value is the maximum age when the cookie will expire, not the cookie's current age. A negative value means that the cookie is not stored persistently and will be deleted when the Web browser exits. A zero value causes the cookie to be deleted.
Created by Fang on June 05, 2012 09:12:36    Last update: June 05, 2012 09:13:03
The apache.commons.lang package has a nice utility to escape strings for various language environments. Simply include the dependency in pom.xml : <dependency> <groupId>org.apache.commons</... and use it: // import org.apache.commons.lang3.StringEscapeUti...
Created by Fang on May 03, 2012 15:07:17    Last update: May 03, 2012 15:07:52
Scaling an image with default Java API loses quality (horribly!): public static BufferedImage resizeImage(Buffer... The imgscalr library does the job beautifully. And its' very easy to do: // import org.imgscalr.Scalr; public static... To import the library in Maven: <dependency> <groupId>org.imgscalr</groupId> ...
Created by Fang on April 16, 2012 13:32:10    Last update: April 16, 2012 13:32:10
There are two steps to create a custom function for JSP: Declare the function in the TLD: <?xml version="1.0" encoding="UTF-8" ?> <taglib... Implement the function (must be static): package com.example; public class UrlTransl... To use the function: <%@ taglib uri="http://www.example.com/jsp/tags" p...
Previous  1 2 3 4 5 6 7 8 9 10 Next