Pergunta

Eu tenho algumas classes gerados a partir de arquivos WSDL pelo Quadro Axis. Em uma dessas classes, há um método gerado


public com.initechsystems.www.initech7.initechbo.Organization createOrganization(com.initechsystems.www.initech7.initechbo.Organization org) throws java.rmi.RemoteException {

//(... snip ...)
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
//(... snip ...)
}

O nome da variável org no parâmetro método cria um conflito de nomes com org.apache.axis.client pacote, como o compilador não pode diferenciar entre o pacote e variável. Sei que posso corrigir isso facilmente, alterando o nome da variável org no método, mas eu gostaria de evitar isso, porque ele diminui o fluxo de trabalho. Existe alguma maneira de contornar isso que não quer modificar o arquivo WSDL ou as classes geradas?

Erro do compilador:


 D:\projects\java\initechdir\target\generated-sources\axistools\wsdl2java\com\initechsystems\www\initech7\initechws\OrganizationManagement\OrganizationManagementSoapStub.java:[1678,29] cannot find symbol
symbol  : variable apache
location: class com.initechsystems.www.initech7.initechbo.Organization
Foi útil?

Solução

Existe uma maneira de fazer com que o código gerado para ter instruções de importação? Isso iria impedi-lo de ter que ter o nome totalmente qualificado da classe.

Então, se você pode adicionar:

import org.apache.axis.client.Call;

para o arquivo, em seguida, a sua chamada de método seria apenas:

_call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);

Eu não tenho certeza se Axis tem uma opção para que embora. Se não eu diria renomear a variável (talvez a "organização") seria a melhor coisa. Eu recomendaria evitar edições manuais de arquivos gerados automaticamente, como que faz regenerando-os mais difíceis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top