Interface CustomBinder para Aplicativos JAX-RPC

O WebSphere Application Server define uma interface CustomBinder que pode ser implementada para aplicativos Java™ API for XML-based Remote Call Procedure(JAX-RPC) para fornecer componentes de ligação de dados customizados concretos para um tipo de esquema XML específico.

A interface CustomBinder têm três propriedades, além de desserializar e serializar métodos. Essas propriedades são QName para o tipo de esquema XML, o escopo QName e o tipo de esquema Java para o qual é mapeado. As propriedades são acessíveis por meio dos métodos getter correspondentes.

getQName

O método getQName retorna o QName do tipo de esquema XML de destino. Os binders de dados customizados trabalham apenas com o tipo de esquema no nível da raiz.

No caso de tipos anônimos, o método getQName retorna o QName do elemento que contém.

Para tipos nomeados, o método getQName retorna o QName do complexType ou o simpleType.

getQNameScope

O método getQNameScope retorna a propriedade qnameScope do binder que indica se o tipo de esquema é um tipo nomeado ou um tipo anônimo. O valor da propriedade qnameScope pode ser complexType para um <xsd:complexType>, simpleType para um <xsd:simpleType> ou element para um <xsd:element> que é definido com um tipo anônimo.

No esquema a seguir, data1 é um elemento definido com um tipo anônimo. O elemento, data2, é definido utilizando o tipo nomeado, data2Type.
<xsd:element name="data1">
	<xsd:complexType>
		...
	</xsd:complexType>
</xsd:element>

<xsd:element name= "data2" type="data2Type"/>
<xsd:complexType name="data2Type">
	...
</xsd:complexType>
O tipo anônimo, data1, tem um qNameScope igual a element e um qName igual a data1. O tipo data2Type, tem um qNameScope igual a complexType e um qName igual a data2Type.

O elemento data2 não é representado no binder de dados customizados. O binder de dados customizados processa apenas tipos e não elementos.

getJavaName

O método getJavaName retorna o nome de classe completo para o tipo Java que é mapeado para o tipo nomeado ou anônimo. A classe pode ser uma interface ou uma classe concreta. O objeto retornado do método de desserialização tem um tipo compatível com o tipo Java retornado pelo método getJavaName.

serializar

O método de serialização retorna o SOAPElement que o binder de dados customizados cria com base no objeto Java. O objeto Java é transmitido do sistema do tempo de execução e espera-se que corresponda ao que é retornado com base no método getJavaName. O parâmetro SOAPElement não tem elementos descendentes, contudo possui um Qname válido. Essa parâmetro é uma referência para o binder a fim de criar o SOAPElement final.

Na maioria dos casos, a implementação do binder anexa elementos descendentes ao SOAPElement raiz. O sistema do tempo de execução garante que o QName SOAPElement está correto. Portando, o binder de dados customizados dos tipos nomeados mantém o QName do elemento raiz porque o binder não conhece o elemento incorporado. A implementação do binder para um tipo anônimo deve sempre incluir o QName no SOAPElement retornado correspondente ao tipo de esquema definido. O WebSphere Application Server não tem métodos concretos no parâmetro CustomBindingContext.

Desserializar

O método de desserialização retorna um objeto Java que o binder de dados customizados cria com base no SOAPElement raiz transmitido. O tipo de objeto do objeto Java retornado deve corresponder ao que é retornado do método getJavaName. Diferente do método de serialização de parâmetro, o SOAPElement transmitido contém os dados XML originais com as declarações de espaço de nomes necessários.

Segue um exemplo de implementação do binder SDO DataGraph, em que os métodos dos utilitários convertToSDO e convertToSAAJ convertem entre o SOAPElement e um objeto SDO.

package test.sdo.binder;

import javax.xml.namespace.QName;
import javax.xml.soap.SOAPElement;

import com.ibm.wsspi.webservices.binding.CustomBinde;
import com.ibm.wsspi.webservices.binding.CustomBindingContext;

public class DataGraphBinder implements CustomBinder {
	public QName getQName() {
		return new QName("commonj.sdo", "DataGraphyType");
}
public String getJavaName(){
	return CustomBinder.QNAME_SCOPE_COMPLEXTYPE;
}
public String getJavaName(){
	return commonj.sdo.DataGraph.class.getName();
}
public javax.xml.soap.SOAPElement serialize(
		Object bean,
		SOAPElement rootNode,
		CustomBindingContext context)
		throws javax,xml.soap.SOAPException {
	// convertToSAAJ é um método utilitário para converter
	//  o SDO DataGraph para SOAPElement
	return convertToSAAJ(bean, rootNode);

public Object deserialize(
		SOAPElement source,
		CustomBindingContext context)
		throws javax.xml.soap.SOAPException {
		// convertToSDO é um método utilitário para converter
		// o SOAPElement para SDO DataGraph
		return convertToSDO(source);
	}
}

Para obter mais informações sobre os componentes de ligação customizados, consulte os componentes de ligação de dados customizados para obter informações sobre aplicativos JAX-RPC. Para saber como conectar os componentes de ligação de dados customizados na ferramenta de linha de comandos WSDL2Java para desenvolvimento, consulte as informações sobre provedores de ligação customizados para aplicativos JAX-RPC.


Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_custbindapi
Nome do arquivo: rwbs_custbindapi.html