CRISPY : framework RPC
J’ai découvert il y a peu de temps un nouveau framework open source permettant l’appel à des services : CRISPY.
En effet ce framework supporte un bon nombre de technologies permettant des appels distants : JAX-RPC, XML-RPC, RMI, EJB, CORBA, etc… en utilisant le système des properties java.
Voici un exemple copié/collé du site officiel pour l’appel à un web service :
Appel à un WS sans CRISPY
1 2 3 4 5 6 7 8 9 10 11 | Service service = (Service) ServiceFactory.newInstance().createService(null); Call call = service.createCall(); call.setTargetEndpointAddress("http://localhost:9080/axis/services/Calculator"); call.setOperationName(new QName("add")); QName paramXmlType = new QName(int.class.getName()); call.addParameter("arg0", paramXmlType, int.class, ParameterMode.IN); call.addParameter("arg1", paramXmlType, int.class, ParameterMode.IN); call.setReturnType(new QName(int.class.getName())); Integer result = (Integer) call.invoke(new Integer[] {new Integer(1), new Integer(2)}); System.out.println("1 + 2 = " + result); |
Utilisation du framework
1 2 3 4 5 6 7 | Properties prop = new Properties(); prop.put(Property.REMOTE_URL_AND_PORT, "http://localhost:9080/axis/services"); prop.put(Property.EXECUTOR_CLASS, JaxRpcExecutor.class.getName()); ServiceManager manager = new ServiceManager(prop); Calculator calc = (Calculator) manager.createService(Calculator.class); System.out.println("1 + 2 = " + calc.add(1, 2)); |
Ce framework est vraiment intéressant part son approche, car il n’est pas nécessaire de connaitre le type de technologie utilisée par le service. Vraiment très simple d’utilisation, je vous recommande d’y jeter un oeil directement sur le site officiel : http://crispy.sourceforge.net, ou sur le site d’ibm qui fait une très bonne présentation du framework ==> ici <==
admin @ juin 10, 2009