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.


- 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.

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.gotchaCom 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]](../images/windows.gif)
app_server_root\bin\wsgen.bat [options] service_implementation_class
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
app_server_root/bin/wsgen.sh [options] service_implementation_class
![[IBM i]](../images/iseries.gif)
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"