Tópico anterior: GeralPróximo tópico: Senha armazenada em texto não criptografado


Erro ao expor muitos serviços

Sintoma:

Quando muitos serviços são expostos a partir do CA IdentityMinder, o Axis2 gera uma grande classe de stub que viola a regra de compilação do JVM e retorna o seguinte erro:

erro: código muito grande para instrução de tentativa

Solução:

Ao receber esse erro de compilação, execute as etapas a seguir para resolvê-lo:

  1. Abra o arquivo de classe de stub gerado no seguinte diretório de exemplos:
    <samples_dir>\wsdl2java\src\tew6\wsdl
    

    O Axis2 gera a classe de stub no seguinte formato:

    <Service_name>Stub.java
    

    Observação: recupere o nome de serviço do WSDL.

  2. No arquivo da classe de stub, divida os métodos fromOM e populateFaults. O script a seguir é um exemplo do método fromOM do arquivo da classe de stub:
    public org.apache.xmlbeans.Xmlobject fromOM (
    org.apache.axiom.om.OMElement param,
    java.lang.Class type,
    java.util.Map extraNamespaces) throws
    org.apache.axis2.AxisFault {
    try {
    .......
    .......
    .......
    }catch (java.lang.Exception e) {
    throw org.apache.axis2.AxisFault.makeFault(e);
    }
    return null;
    }
    
  3. Divida o script de método em duas partes e nomeie a outra metade, por exemplo, fromOMExtended.
  4. Chame o método recém-criado do método fromOM. O script a seguir é um exemplo do método fromOM modificado:
    public org.apache.xmlbeans.Xmlobject fromOM (
    org.apache.axiom.om.OMElement param,
    java.lang.Class type,
    java.util.Map extraNamespaces) throws
    org.apache.axis2.AxisFault {
    try {
    .......
    .......
    .......
    }catch (java.lang.Exception e) {
    throw org.apache.axis2.AxisFault.makeFault(e);
    }
    //invoking the new method
    return this. fromOMExtended(param, type, extraNamespaces);
    }
    
  5. Repita as etapas 3 e 4 para o método populateFaults.
  6. Salve as alterações e execute o seguinte comando a partir do local do diretório de exemplos para compilar as alterações:
    sample_dir_location> ant -Dnowsdlgen=true
    

    A compilação não retornará nenhum erro.