Posto di seguito il codice

Cliente:
package semplice.poggio.cliente;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

import semplice.poggio.dati.Albergo;


public class Cliente {

public static void main(String[] args1) throws AxisFault {

RPCServiceClient serviceClient = new RPCServiceClient();

Options options = serviceClient.getOptions();

EndpointReference targetEPR = new EndpointReference(
"http://localhost/axis2/services/Servizio_Albergo");
options.setTo(targetEPR);

// Setting the operations
Albergo w = new Albergo ();
// Getting the weather
QName opGetOper =
new QName("http://servizio.poggio.semplice/xsd", "get_recapiti");

Object[] opGetOperArgs = new Object[] { };
Class[] returnTypes = new Class[] { Albergo.class };

Object[] response = serviceClient.invokeBlocking(opGetOper,
opGetOperArgs, returnTypes);

Albergo result = (Albergo) response[0];

if (result == null) {
System.out.println("Operators didn't inizialised");
return;
}
// Displaying the result
w.trova_telefono_clienti();


}
}
Codice Servizio

package semplice.poggio.servente;
import semplice.poggio.dati.Albergo;



public class Query {

Albergo g = new Albergo ();

public void get_recapiti () {


g.trova_telefono_clienti();


}



}
Codice Albergo con Mysql

package semplice.poggio.dati;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Albergo
{






public void trova_telefono_clienti ()
{
try {
Connection conn;
Statement stmt;
ResultSet res;
// load the Connector/J driver
Class.forName("com.mysql.jdbc.Driver").newInstance ();
// establish connection to MySQL
conn = DriverManager.getConnection(
"jdbc:mysql://localhost/hotel", "root", "password");
// execute SELECT query
stmt = conn.createStatement();
res = stmt.executeQuery(
"SELECT telefono, nominativo FROM clienti " +
"ORDER BY nominativo");
// process results
while (res.next()) {

String tel = res.getString("telefono");
System.out.println(" Recapito_Telefonico " + tel);
}
res.close();
}

catch(Exception e) {
System.out.println("Error: " + e.toString() );
}
}




}
File build

<project name="nonso" basedir="." default="generate.service">
<property name="service.name" value="Prenotazione_Albergo"/>
<property name="dest.dir" value="build"/>
<property name="dest.dir.classes" value="${dest.dir}/${service.name}"/>
<property name="dest.dir.lib" value="${dest.dir}/lib"/>
<property name="axis2.home" value="../../"/>
<property name="repository.path" value="${axis2.home}/repository"/>

<path id="build.class.path">

<fileset dir="${axis2.home}/lib">
<include name="*.jar"/>
</fileset>
</path>

<path id="client.class.path">

<fileset dir="${axis2.home}/lib">
<include name="*.jar"/>
</fileset>

<fileset dir="${dest.dir.lib}">
<include name="*.jar"/>
</fileset>
</path>

<target name="clean">
<delete dir="${dest.dir}"/>
<delete dir="src" includes="semplice/poggio/stub/**"/>
</target>

<target name="prepare">
<mkdir dir="${dest.dir}"/>
<mkdir dir="${dest.dir}/lib"/>
<mkdir dir="${dest.dir.classes}"/>
<mkdir dir="${dest.dir.classes}/META-INF"/>
</target>

<target name="generate.service" depends="clean,prepare">
<copy file="src/META-INF/services.xml" tofile="${dest.dir.classes}/META-INF/services.xml" overwrite="true"/>

<javac srcdir="src" destdir="${dest.dir.classes}" includes="semplice/poggio/servente/**,semplice/poggio/dati/**">
<classpath refid="build.class.path"/>
</javac>
<jar basedir="${dest.dir.classes}" destfile="${dest.dir}/${service.name}.aar"/>
<copy file="${dest.dir}/${service.name}.aar" tofile="${repository.path}/services/${service.name}.aar" overwrite="true"/>
</target>

<target name="rpc.client" depends="clean,prepare">
<antcall target="rpc.client.compile"/>
<antcall target="rpc.client.jar"/>
<antcall target="rpc.client.run"/>
</target>

<target name="rpc.client.compile">

<javac srcdir="src" destdir="${dest.dir.classes}" includes="semplice/poggio/cliente/**,semplice/poggio/dati/**">
<classpath refid="build.class.path"/>
</javac>
</target>

<target name="rpc.client.jar">
<jar basedir="${dest.dir.classes}" destfile="${dest.dir.lib}/rpc-client.jar" includes="semplice/poggio/cliente/**,semplice/poggio/dati/**"/>
</target>

<target name="rpc.client.run">

<java classname="semplice.poggio.dati.Albergo">
<classpath refid="client.class.path"/>
</java>
</target>
</project>
File services.xml



<service name="Prenotazioni Albergo" scope="application">
<description>

</description>
<messageReceivers>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageRe ceiver"/>

</messageReceivers>
<parameter name="ServiceClass">
semplice.poggio.servente.Query
</parameter>
</service>
L'errore riscontrato è il seguente:

Activation.main: avviso: sistema sun.rmi.activation.execPolicy
Proprietà non specificata e nessun ExecPermissions/ExecOptionPermissions
garantito. I tentativi di attivazione successivi potrebbero fallire a causa di
controlli di autorizzazione ExecPermission/ExecOptionPermission non andati a buon fine. Per
la documentazione e le modalità di configurazione della protezione rmid, fare riferimento a (informazioni in inglese):

http://java.sun.com/j2se/1.4/docs/to...aris/rmid.html
http://java.sun.com/j2se/1.4/docs/to...in32/rmid.html

Activation.main: si è verificata un'eccezione: Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use
java.rmi.server.ExportException: Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTrans port.java:249)
at sun.rmi.transport.tcp.TCPTransport.exportObject(TC PTransport.java:184)
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCP Endpoint.java:382)
at sun.rmi.transport.LiveRef.exportObject(LiveRef.jav a:116)
at sun.rmi.server.UnicastServerRef.exportObject(Unica stServerRef.java:180)
at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.j ava:92)
at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl. java:68)
at java.rmi.registry.LocateRegistry.createRegistry(Lo cateRegistry.java:222)
at sun.rmi.server.Activation.main(Activation.java:189 2)
Caused by: java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java :359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185 )
at java.net.ServerSocket.<init>(ServerSocket.java:97)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.cre ateServerSocket(RMIDirectSocketFactory.java:27)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.cre ateServerSocket(RMIMasterSocketFactory.java:333)
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket( TCPEndpoint.java:622)
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTrans port.java:237)
... 8 more