glassfish “Unable to start server due following issues: java.lang.NullPointerException” exception

When starting glassfish server, if you get "Unable to start server due following issues: java.lang.NullPointerException" exception, it is probably because of the localization settings of eclipse. To change eclipse’s localization settings:

  • Open eclipse.ini file which is located in your eclipse installation directory (in the same folder with eclipse.exe).
  • Add -Duser.language=en in the bottom of your eclipse.ini.
  • Restart eclipse.

There is a parallel problem for netbeans. If you get: “GlassFish Server Server start failed. Cant create start proccess” in netbeans, consult: https://madvens.wordpress.com/2013/07/05/netbeans-glassfish-problem-solution/

java mysql utf8 character problem

1. For Database:


Open Glassfish Admin Console, navigate “JDBC Connection Pools > pool_name > Additional Properties”
Update URL parameter’s value as:

jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=UTF-8

(Add "?useUnicode=true&characterEncoding=UTF-8" part)

2. For Server:


Open Glassfish Admin Console, navigate “Configurations > server-config > JVM Settings > JVM Options”
Add option "-Dfile.encoding=UTF8"

3. Add the following filter to web.xml:

<filter>
	<filter-name>Set Character Encoding</filter-name>
	<filter-class>filters.SetCharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>Set Character Encoding</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

filter.SetCharacterEncodingFilter class:

package filters;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * Example filter that sets the character encoding to be used in parsing the
 * incoming request, either unconditionally or only if the client did not
 * specify a character encoding.
 */
public class SetCharacterEncodingFilter implements Filter {

    protected String encoding = null;
    protected FilterConfig filterConfig = null;
    protected boolean ignore = true;

    /**
     * Take this filter out of service.
     */
    @Override
    public void destroy() {
        this.encoding = null;
        this.filterConfig = null;
    }

    /**
     * Select and set (if specified) the character encoding to be used to
     * interpret request parameters for this request.
     */
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException {
// Conditionally select and set the character encoding to be used
        if (ignore || (request.getCharacterEncoding() == null)) {
            String encoding = selectEncoding(request);
            if (encoding != null) {
                request.setCharacterEncoding(encoding);
            }
        }
// Pass control on to the next filter
        chain.doFilter(request, response);
    }

    /**
     * Place this filter into service.
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
        String value = filterConfig.getInitParameter("ignore");
        if (value == null) {
            this.ignore = true;
        } else if (value.equalsIgnoreCase("true")) {
            this.ignore = true;
        } else if (value.equalsIgnoreCase("yes")) {
            this.ignore = true;
        } else {
            this.ignore = false;
        }
    }

    /**
     * Select an appropriate character encoding to be used, based on the
     * characteristics of the current request and/or filter initialization
     * parameters. If no character encoding should be set, return null.
     */
    protected String selectEncoding(ServletRequest request) {
        return (this.encoding);
    }
}

GlassFish Server Server start failed. Cant create start proccess

Change localization settings in the netbeans configuration file ($NETBEANSHOME/etc/netbeans.conf).
Add "--locale en" to the end of "netbeans_default_options".
(if your os is windows and it is “unabled to save netbeans.conf”, run cmd as administrator and navigate "C:\Program Files\NetBeans 7.3.1\etc>". Then run "notepad netbeans.conf" and edit netbeans.conf)

There is a parallel problem for eclipse. If you get: “Unable to start server due following issues: java.lang.NullPointerException” in eclipse, consult: https://madvens.wordpress.com/2013/11/11/glassfish-unable-to-start-server-due-following-issues-java-lang-nullpointerexception-exception/