【TechTarget中国原创】问:我正在写一个Java DII的客户,其内容的资料,接口库。我必须执行一个远程方法有一个参数的类型是一个用户定义的数据类型。如何建立援引的运作,并宣读结果的要求?截至现在,我能读的参数名称,参数类型和数量的参数方法。我试图构建dynstruct动态工厂。如何发送用户定义的数据类型作为参数来进行CORBA的方法?
答:这是一个很好的问题,因为J2EE的动态调用接口(DII)客户端的模式,能够获得一个基于RPC的Web服务,即使细节服务不明运行。要创建一个DII的客户,请按照下列步骤:
1:创建一个服务对象使用javax.xml.rpc.ServiceFactory级如下:
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new QName(theServiceQName));
2:从服务对象,创建一个调用对象如下:
QName port = new QName(theQNnamePort);
Call call = service.createCall(port);
3:设置服务端点地址上的通话对象相应的组成部分,WSDL文件如下:
call.setTargetEndpointAddress(theEndpointAddress);
4:设置适当的性能上的通话对象。
5:指定方法的返回类型,名称和参数如下:
QName qNameRetType = new QName(NS_XSD, "theXSDType");
call.setReturnType(qNameRetType);
call.setOperationName(new QName(theOperationNamespaceValue,
"theOperationName"));
call.addParameter("String_1", QNAME_TYPE_STRING,
ParameterMode.IN);
6:调用远程方法调用对象如下:
字符串[ ]参数=(“param1”);
字符串结果= (字符串)call.invoke(参数);
这种情况的详细信息可以在J2EE的教程找到。