Comando wsgen para Aplicativos JAX-WS

A ferramenta de linha de comandos wsgen gera os artefatos necessários exigidos para aplicativos JAX-WS (Java™ API for XML Web Services) ao começar do código Java. Os artefatos gerais são compatíveis com Java 5, tornando-os portáveis entre versões e plataformas diferentes do Java.

Quando usar abordagens ascendentes para desenvolver serviços da Web JAX-WS e se você estiver iniciando a partir de uma implementação de terminal de serviço, use a ferramentawsgen para gerar os artefatos JAX-WS necessários.

Configurações suportadas Configurações suportadas: As ferramentas de linha de comandos wsimport, wsgen, schemagen e xjc não são suportadas na plataforma z/OS. Essa funcionalidade é permitida pelas ferramentas de montagem fornecidas com o WebSphere Application Server em execução na plataforma z/OS. Consulte sobre essas ferramentas de linha de comandos para aplicativos JAX-WS para saber mais sobre elas.sptcfg
Boas Práticas Boas Práticas: WebSphere Application Server fornece API Java para XML-Based Web Services (JAX-WS) e ferramentas do Java Architecture para XML Binding (JAXB). As ferramentas de linha de comandos wsimport, wsgen, schemagen e xjc estão localizadas no diretório app_server_root\bin\ no WebSphere Application Server tradicional.Os comandos xjc e schemagen estão localizados no diretório app_server_root\jaxb\bin\, no perfil Liberty. Em determinadas ocasiões, os artefatos gerados pelas ferramentas fornecidas pelo WebSphere Application Server e pelo JDK suportam os mesmos níveis das especificações. Em geral, os artefatos gerados pelas ferramentas JDK são portáteis entre outros ambientes de tempo de execução compatíveis. Entretanto, é uma boa prática usar as ferramentas fornecidas com este produto para obter uma perfeita integração no ambiente do WebSphere Application Server e para aproveitar os recursos que talvez só sejam suportados no WebSphere Application Server. Para usufruir das vantagens dos conjuntos de ferramentas JAX-WS e JAXB V2.2, use as ferramentas fornecidas com o servidor de aplicativos localizado no diretório app_server_root\bin\.bprac
Nota: É possível usar as ferramentas de linha de comandos wsimport, wsgen, schemagen e xjc com o Liberty e o WebSphere Application Server tradicional do servidor de aplicativos.
A ferramenta wsgen aceita uma implementação de terminal em serviço adequadamente anotada, utilizando a anotação @WebService como entrada, e gera os seguintes artefatos:
  • qualquer classe adicional de JAXB (Java Architecture for XML Binding) que seja necessária para organizar e desorganizar o conteúdo da mensagem.
  • um arquivo WSDL, se o argumento -wsdl opcional for especificado. A ferramenta wsgen não gera automaticamente o arquivo WSDL.

Ao usar ferramentas JAX-WS V2.2, as referências java.lang.RuntimeException e java.rmi.RemoteException e suas subclasses não são mais mapeadas no arquivo WSDL. Essa mudança no comportamento é compatível com a regra de conformidade da especificação JAX-WS V2.1 descrita na seção 3.7 da especificação. Essa regra de conformidade especifica que as classe java.lang.RuntimeException e java.rmi.RemoteException e suas subclasses não podem ser tratadas como exceções específicas do serviço e mapeadas no arquivo WSDL.

Além de usar ferramentas da linha de comandos, é possível chamar essas ferramentas JAX-WS de dentro de ambientes de construção Ant para WebSphere Application Server tradicional. Use a tarefa Ant com.sun.tools.ws.ant.WsGen de dentro do ambiente de construção Ant para chamar a ferramenta wsgen. Para que funcione corretamente, essa tarefa Ant requer que Ant seja chamado usando o script ws_ant.

Evitar Problemas Evitar Problemas: O comando wsgen não diferencia o espaço de nomes XML entre várias anotações XMLType que têm o mesmo nome @XMLType definido nos diferentes pacotes Java. Quando esse cenário ocorre, o seguinte erro é produzido:
Erro: duas classes têm o mesmo nome de tipo XML ....
Utilize @XmlType.name e @XmlType.namespace para designar nomes diferentes a elas...
Este erro indica que você possui nomes de classe ou valores @XMLType.name que possuem o mesmo nome, mas existem dentro de diferentes pacotes Java. Para evitar esse erro, inclua a classe @XML.Type.namespace na anotação @XMLType existente para diferenciar entre os tipos XML.gotcha

Com aplicativos JAX-WS, a ferramenta de linha de comandos wsgen pode não localizar arquivos de classe compartilhados no perfil integral. É possível especificar o local desses arquivos de classe usando a propriedade customizada com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath. Para obter informações adicionais, consulte a documentação sobre as propriedades customizadas da Java virtual machine.

Sintaxe

A sintaxe da linha de comandos é:

[Windows]
app_server_root\bin\wsgen.bat [options] service_implementation_class
[AIX][HP-UX][Linux][Solaris]
app_server_root/bin/wsgen.sh [options] service_implementation_class
[IBM i]
app_server_root/bin/wsgen [options] service_implementation_class

Parameters

O nome service_implementation_class é o único parâmetro obrigatório. Os seguintes parâmetros são opcionais para o comando wsgen:

-classpath <path>
Especifica o local da classe da implementação do serviço.
-cp <path>
Especifica o local da classe da implementação do serviço. Esse parâmetro é o mesmo que -classpath <caminho>.
-d <diretório>
Especifica onde colocar os arquivos de saída gerados.
-extension
Especifica se as extensões customizadas devem ser permitidas para funcionalidade não especificada pela especificação JAX-WS. O uso das extensões pode resultar em aplicativos não portáteis ou que não interoperam com outras implementações.
-help
Exibe o menu de ajuda.
-keep
Especifica se deve manter os arquivos de origem gerados.
-r <directory>
Esse parâmetro é usado apenas com o parâmetro -wsdl. Especifica onde colocar o arquivo WSDL gerado.
-s <diretório>
Especifica o diretório para colocar os arquivos de origem gerados.
-verbose
Especifica para apresentar mensagens sobre o que o compilador está fazendo.
-version
Imprime as informações de versão. Se você especificar essa opção, apenas as informações de versão serão informadas e o processamento normal do comando não ocorrerá.
-wsdl [:protocol]
Por padrão, a ferramenta wsgen não gera um arquivo WSDL. Esse parâmetro opcional faz com que wsgen gere um arquivo WSDL que é utilizado normalmente apenas para possibilitar que um desenvolvedor reveja um arquivo WSDL antes da implementação do terminal. O protocol é opcional e especifica o protocolo utilizado em wsdl:binding. Os valores válidos para protocol são soap 1.1 e Xsoap 1.2. O valor padrão é soap 1.1. O valor Xsoap 1.2 não é padrão e só é usado com a opção -extension.
-servicename <name>
Esse parâmetro é usado apenas com a opção -wsdl. Especifica um nome wsdl:service a ser gerado no arquivo WSDL. Por exemplo,
-service name "{http://mynamespace/}MyService"
-portname
Esse parâmetro é usado apenas com a opção -wsdl. Especifica um nome wsdl:port a ser gerado no arquivo WSDL. Por exemplo,
-portname "{http://mynamespace/}MyPort"

Í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_wsgen
Nome do arquivo: rwbs_wsgen.html