Validar um documento DDX usando a API do serviço Web
- Aplica-se a:
- Experience Manager 6.5
Criado para:
- Desenvolvedor
Exemplos e exemplos neste documento são somente para AEM Forms no ambiente JEE.
Valide um documento DDX usando a API de serviço do Assembler (serviço Web):
-
Incluir arquivos de projeto.
Crie um projeto Microsoft .NET que use MTOM. Certifique-se de usar a seguinte definição WSDL:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.OBSERVAÇÃO
Substitua localhost pelo endereço IP do Forms Server. -
Crie um cliente PDF Assembler.
-
Crie um objeto
AssemblerServiceClient
usando seu construtor padrão. -
Crie um objeto
AssemblerServiceClient.Endpoint.Address
usando o construtorSystem.ServiceModel.EndpointAddress
. Transmita um valor de string que especifique o WSDL para o serviço AEM Forms (por exemplo,http://localhost:8080/soap/services/AssemblerService?blob=mtom
). Você não precisa usar o atributolc_version
. Esse atributo é usado quando você cria uma referência de serviço. -
Crie um objeto
System.ServiceModel.BasicHttpBinding
obtendo o valor do campoAssemblerServiceClient.Endpoint.Binding
. Converter o valor de retorno emBasicHttpBinding
. -
Defina o campo
MessageEncoding
do objetoSystem.ServiceModel.BasicHttpBinding
comoWSMessageEncoding.Mtom
. Esse valor garante que a MTOM seja usada. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribua o nome de usuário dos formulários AEM ao campo
AssemblerServiceClient.ClientCredentials.UserName.UserName
. - Atribua o valor de senha correspondente ao campo
AssemblerServiceClient.ClientCredentials.UserName.Password
. - Atribua o valor constante
HttpClientCredentialType.Basic
ao campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Atribua o valor constante
BasicHttpSecurityMode.TransportCredentialOnly
ao campoBasicHttpBindingSecurity.Security.Mode
.
- Atribua o nome de usuário dos formulários AEM ao campo
-
-
Consulte um documento DDX existente.
- Crie um objeto
BLOB
usando seu construtor. O objetoBLOB
é usado para armazenar o documento DDX. - Crie um objeto
System.IO.FileStream
chamando seu construtor e transmitindo um valor de cadeia de caracteres que representa o local do arquivo do documento DDX e o modo em que o arquivo será aberto. - Crie uma matriz de bytes que armazene o conteúdo do objeto
System.IO.FileStream
. Você pode determinar o tamanho da matriz de bytes obtendo a propriedadeLength
do objetoSystem.IO.FileStream
. - Preencha a matriz de bytes com os dados de fluxo invocando o método
Read
do objetoSystem.IO.FileStream
e transmitindo a matriz de bytes, a posição inicial e o comprimento do fluxo para leitura. - Preencha o objeto
BLOB
atribuindo sua propriedadeMTOM
com o conteúdo da matriz de bytes.
- Crie um objeto
-
Defina as opções de tempo de execução para validar o documento DDX.
- Crie um objeto
AssemblerOptionSpec
que armazene opções de tempo de execução usando seu construtor. - Defina a opção de tempo de execução que instrui o serviço Assembler a validar o documento DDX atribuindo o valor true ao membro de dados
validateOnly
do objetoAssemblerOptionSpec
. - Defina a quantidade de informações que o serviço Assembler grava no arquivo de log atribuindo um valor de cadeia de caracteres ao membro de dados
logLevel
do objetoAssemblerOptionSpec
. método Ao validar um documento DDX, você deseja que mais informações sejam gravadas no arquivo de log que auxiliará no processo de validação. Como resultado, você pode especificar o valorFINE
ouFINER
. Para obter informações sobre as opções de tempo de execução que você pode definir, consulte a referência de classeAssemblerOptionSpec
na Referência da API AEM Forms.
- Crie um objeto
-
Execute a validação.
Chame o método
invokeDDX
do objetoAssemblerServiceClient
e passe os seguintes valores:- Um objeto
BLOB
que representa o documento DDX. - O valor
null
do objetoMap
que geralmente armazena documentos PDF. - Um objeto
AssemblerOptionSpec
que especifica opções de tempo de execução.
O método
invokeDDX
retorna um objetoAssemblerResult
que contém informações que especificam se o documento DDX é válido. - Um objeto
-
Salve os resultados da validação em um arquivo de log.
- Crie um objeto
System.IO.FileStream
chamando seu construtor e transmitindo um valor de cadeia de caracteres que representa o local do arquivo de log e o modo em que o arquivo será aberto. Verifique se a extensão do nome do arquivo é .xml. - Crie um objeto
BLOB
que armazene informações de log obtendo o valor do membro de dadosjobLog
do objetoAssemblerResult
. - Crie uma matriz de bytes que armazene o conteúdo do objeto
BLOB
. Popular a matriz de bytes obtendo o valor do campoMTOM
do objetoBLOB
. - Crie um objeto
System.IO.BinaryWriter
invocando seu construtor e transmitindo o objetoSystem.IO.FileStream
. - Grave o conteúdo da matriz de bytes em um arquivo PDF, chamando o método
Write
do objetoSystem.IO.BinaryWriter
e transmitindo a matriz de bytes.
OBSERVAÇÃO
Se o documento DDX for inválido,OperationException
será lançado. Na instrução catch, você pode obter o valor do membrojobLog
do objetoOperationException
. - Crie um objeto