WSDL2Java

Axis2のWSDL2Javaをコマンドラインから実行すると、なぜかNullPointerExceptionで落ちてしまうので、以下のコードをEclipseから実行して、原因を探求。

import org.apache.axis2.wsdl.WSDL2Code;

public class Wsdl2Java {
        public static void main(String args) throws Exception{
                String realArgs = {
                        "-uri"
                        ,"./blanco.wsdl/Sample.wsdl"
                        ,"-ss"
                        ,"-sd"
                        ,"-o"
                        ,"./axis2"
                        ,"-d"
                        ,"xmlbeans"
                        ,"-p"
                        ,"sample.logic"
                };     
                WSDL2Code.main(realArgs);
        }
}

どうやら、コード自動生成時のDEBUGログ出力の際にNullPointerExceptionが発生している模様。 Log4jのログレベルをINFOにするために、以下のlog4j.propertesをクラスパス上に配置。

log4j.rootCategory=INFO,CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

これでとりあえず、WSDLからJavaソースコードが生成されるようになる。生成されるソースコードの整形にはjalopyが使用されている模様。