PDA

View Full Version : [Tomcat/Axis] InvocationTargetException solo se istanzio una nuova classe


}gu|do[z]{®©
25-11-2008, 06:45
Dopo 4 giorni di sbattimento su sta cosa provo a chiedere lumi...

Innanzitutto ho Tomcat 6.0 e axis 1.4 su un MacBook con Leopard (ho comunque provato su altre macchine, in particolare su server veri dove girano regolarmente un bel po' di webservice.)

Vi faccio un esempio minimalissimo per evidenziare il problema il più possibile.

Ho un file chiamato Test.jws con il seguente contenuto:


public class Test
{
public String helloWorld()
{
return "Hello "+Test2.world;
}
}

class Test2
{
public static String world = "world";
}


il wsdl viene correttamente creato, ma il client riceve questa simpatica eccezione:

java.lang.reflect.InvocationTargetException

Notate che naturalmente questo funziona:

public class Test
{
public String helloWorld()
{
return "Hello world";
}
}

class Test2
{
public static String world = "world";
}


Ma funziona anche questo (con variabile final)

public class Test
{
public String helloWorld()
{
return "Hello "+Test2.world;
}
}

class Test2
{
public final static String world = "world";
}


ma questo, di nuovo, no:

public class Test
{
public String helloWorld()
{
Test2 t = new Test2();
return "Hello world";
}
}

class Test2
{
public static String world = "world";
}



insomma il problema sembra verificarsi nell'istanziare o referenziare la seconda classe (ad eccezione di quando dichiaro la variabile final).

Qualcuno sa che pesci prendere o almeno mi può provare sto codice su diverse versioni?