Comando WSDL2Java para Aplicativos JAX-RPC
Execute a ferramenta da linha de comandos WSDL2Java com relação ao arquivo WSDL para criar os modelos de APIs e do descritor de implementação Java™.
A ferramenta de linha de comandos WSDL2Java não é suportada na plataforma z/OS. Essa funcionalidade é permitida pelas ferramentas de montagem fornecidas com o WebSphere Application Server em execução na
plataforma z/OS.
Um arquivo WSDL (Web Services Description Language) descreve um serviço da Web. A especificaçãoJava API for XML-based Remote Procedure Call (JAX-RPC) 1.1 define um mapeamento doJava API que interage com o serviço da Web. A especificação do Web Services for Java Platform, Enterprise Edition (Java EE) define os descritores de implementação que implementam um serviço da Web em um ambiente do Java EE. O comando WSDL2Java é executado para o arquivo WSDL a fim de criar as APISJava e os modelos do descritor de implementação de acordo com essas especificações.

targetNamespace="MyRelNamespace"
.
É possível alterar o espaço de nomes relativo neste exemplo para um espaço de nomes absoluto
incluindo as informações de protocolo e de URI de base: targetNamespace="http://www.sample.com/MyRelNamespace"
Sintaxe da Linha de Comandos
WSDL2Java [argumentos] WSDL-URI
Argumentos Obrigatórios
- WSDL-URI
Especifica a localização do arquivo WSDL de entrada que está utilizando um URI (Universal Resource Identifier). Você também pode usar um caminho de arquivo comum se o arquivo WSDL estiver no sistema de arquivos local.
Argumentos Importantes
- -role Função do Java EEEspecifica a função de desenvolvimento Java EE que identifica quais arquivos gerar. Os argumentos válidos incluem:
- cliente
Uma combinação dos argumentos develop-client e deploy-client.
- deploy-client
Gera arquivos de ligação para implementação do cliente.
- deploy-server
Gera arquivos de ligação para implementação do servidor.
- develop-client (padrão)
Gera arquivos para desenvolvimento do cliente.
- develop-server
Gera arquivos para desenvolvimento do servidor.
- servidor
Uma combinação dos argumentos develop-server e deploy-server.
- cliente
- -container Contêiner do Java EE Indica o contêiner Java EE a ser utilizado. Os argumentos válidos incluem:Para funções do cliente (consulte a opção -role), o argumento padrão é none. Para funções do servidor, o contêiner deve ser ejb ou web. A mesma opção de contêiner deve ser utilizada para desenvolvimento e implementação.
- cliente
Indica contêiner cliente.
- ejb
Indica um contêiner EJB (JavaBeans).
- none
Indica sem contêiner.
- web
Indica um contêiner da Web.
- cliente
- -output directory
Define o diretório raiz para os arquivos emitidos.
- -inputMappingFile mapping file
Especifica o nome do arquivo de mapeamento de Web Services for Java EE.
- -introspect
Usa os beans existentes Java com uma nova API de serviço da Web.
Em alguns cenários, é bom usar classes Java existentes em vez de gerar novas classes. A opção -introspect dirige o comando WSDL2Java para examinar classes Java existentes ao gerar classes. As classes existentes são validadas em relação à especificação JAX-RPC. Por exemplo:
Suponha que você tenha um bean Java existente
O arquivo WSDL define x como xsd:dateTime. Se a opção -introspect, o comando WSDL2Java gera um bean Java similar ao seguinte exemplo:public class Bean { public Date x; }
O comando WSDL2Java utiliza a opção -introspect para examinar o bean Java original e gerar classes compatíveis com os beans Java existentes.public class Bean { private Calendar x; public void setx(Calendar value) (x=value;) public Calendar getX() { return x;) }
- -classpath paths
Define um caminho de classe alternativo para procurar classes Java.
- -noDataBinding
Desativa a ligação de tipos XML para tipos Java. Em vez disso, cada tipo XML é mapeado para uma interface javax.xml.soap.SOAPElement definida pela API SOAP com Anexos para a especificação Java (SAAJ).
O modelo de programação JAX-WS (Java API for XML Web Services) suporta SAAJ 1.2 e 1.3.
O modelo de programação JAX-RPC suporta SAAJ 1.2.
Os modelos de programação Java definem os mapeamentos Java para um subconjunto de tipos XML. Vários tipos XML não podem ser mapeados para beans Java ou primitivos. Nessa situação, o comando WSDL2Java mapeia o tipo para um SAAJ SOAPElement. Um SAAJ SOAPElement é uma representação genérica do elemento na mensagem. Os métodos no SOAPElement podem ser usados para examinar o elemento e seus filhos.
Em alguns cenários, pode ser mais apropriado usar o mapeamento SOAPElement genérico exclusivamente. Para saber mais sobre o uso do SOAPElement, consulte as informações sobre a API SOAP com Anexos para a interface Java e componentes de ligação de dados customizados para aplicativos JAX-RPC.
Para obter uma lista completa de padrões e especificações suportados, consulte as especificações de serviços da Web e a documentação da API.
- -help
Exibe uma mensagem de ajuda e sai.
- -helpX
Exibe uma mensagem de ajuda para opções estendidas. As opções incluem:
- -verbose
Exibe as informações de processamento, incluindo os nomes dos arquivos gerados.
- -NStoPkg namespace=package
Por padrão, os nomes dos pacotes são derivados automaticamente das cadeias de espaço de nomes no arquivo WSDL. Por exemplo, se o espaço de nomes tiver o formato http://x.y.com ou urn:x.y.com, o pacote correspondente será com.y.x.
É possível fornecer seu próprio mapeamento utilizando o argumento -NStoPkg, que pode ser repetido com a frequência necessária, uma vez para cada mapeamento de espaço de nomes exclusivo. Por exemplo, se um espaço de nomes no arquivo WSDL for denominado urn:AddressFetcher2, e você quiser que os arquivos gerados a partir dos objetos no espaço de nomes residam no pacote samples.addr, forneça o argumento -NStoPkg "http://urn:AddressFetcher2/"=samples.addr para o comando WSDL2Java.
- -timeout seconds
Especifica quanto tempo o comando WSDL2Java aguarda, em segundos, até que o URI do WSDL responda, antes de desistir. O padrão é 45 segundos; -1 desativa o tempo limite.
- -genResolver
Gera uma classe de resolução absolute-import. A finalidade dessa classe é registrar o conteúdo dos arquivos WSDL importados que são utilizados pelo URI do WSDL. Essa classe é utilizada pelo tempo de execução e também pode ser utilizada para execuções futuras do comando WSDL2Java. Essa flexibilidade é desejável quando os arquivos WSDL importados são remotos e podem estar inacessíveis. Quando uma resolução de importação é utilizada, a possibilidade de um arquivo WSDL remoto possuir conteúdos diferentes no tempo de execução e no desenvolvimento está eliminada. A classe gerada chama-se _AbsoluteImportResolver.java. Compile e empacote essa classe com as outras classesJava geradas pelo comando WSDL2Java.
- -useResolver resolver-class
Especifica uma classe de resolução absolute-import para usar durante a análise. Essa classe deve ser criada durante uma execução anterior do comando WSDL2Java que utiliza a opção -genResolver. A classe deve estar disponível na variável CLASSPATH.
- -deployScope argument Indica como implementar a implementação do servidor. Os argumentos válidos incluem:
- Application
Utiliza uma instância da classe de implementação para todos os pedidos.
- Request
Cria uma nova instância da classe de implementação para cada pedido.
- Session
Cria uma nova instância da classe de implementação para cada sessão.
- Application
Outros Argumentos
- -user id
Especifica o nome do usuário de login para acessar o URI do WSDL.
- -password password
Especifica a senha do usuário de login para acessar o URI do WSDL.
- -all
Gera tipos de arquivos Java para todos os tipos, mesmo que não tenham referência.
- -allowRelativeNamespace true or false
Especifica se as restrições de espaço de nomes relativo devem ser desativadas. Se você especificar -allowRelativeNamespace=true, as restrições de espaço de nomes relativas serão desativadas.
Evitar Problemas: Utilize essa propriedade apenas se você tiver um arquivo ou um esquema WSDL estabelecido que dependa de espaços de nomes relativos e você estiver buscando interoperar com um conjunto definido de fornecedores que permita o uso de espaços de nomes relativos.gotcha
- -debug
Imprime informações de depuração.
- -genJava argument Gera arquivos Java. Os argumentos válidos incluem:
- IfNotExists, default
- Sobrescrever
- Não
- -javaSearch argumentA opção -javaSearch é utilizada com a opção -genJava. Se -genJava tiver o valor IfNotExists, utilize a opção -javaSearch para determinar como a existência do arquivo será detectada.
- File (default): Procura um arquivo no diretório de saída
- Classpath: Procura uma classe na variável CLASSPATH
- Both: Procura um arquivo no diretório de saída ou em uma classe na variável CLASSPATH
- -genXML argument Gera os arquivos .xml e .xmi. Os argumentos válidos são:
- IfNotExists, default
- Sobrescrever
- Não
- -genImplSer true ou false
Indica que cada bean Java implementa o java.io.Serializable. O padrão é false.
- -genEquals true ou false
Indica que cada bean Java tem métodos equals e hashCode. O padrão é falso.
- -noWrappedOperations
Desativa a detecção de operações agrupadas. Os beans Java para as mensagens de pedido e resposta são gerados.
- -noWrappedArrays
Desativa a detecção de matriz agrupada.
- -fileNStoPkg file name
Especifica o arquivo do espaço de nomes para empacotar mapeamentos. O padrão é NStoPKG.properties.
- service wsdl service name
Gera arquivos apenas para o serviço WSDL instalado.
- -testCase
Gera o modelo para as etapas de teste JUnit para os serviços da Web de teste. JUnit é uma estrutura simples para gravar testes que podem ser repetidos.