wmixvideo / nfe

Nota Fiscal Eletrônica em Java.
Apache License 2.0
648 stars 377 forks source link

Atualizacão axis2 de 1.7.9 para 1.82 #929

Closed rafaelstelles closed 3 months ago

rafaelstelles commented 1 year ago

Eu criei uma branch aqui, e começei a fazer a migração e ir resolvendo os pontos de quebra. O repositório ainda não está compilando, e está faltando a parte de gerar as classes stub. Eu usei a doc que tem aqui e ajudou um pouco, só que gerou a exception abaixo.

Alguém chegou a ter esse problema ? Eu dei uma olhada na internet e não achei nada conclusivo. A minha idéia é que assim que der certo o processo de geração das classes para a versão nova, eu fazer uma pipeline para automatizar o processo e facilitar no futuro para todos.

Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:163)
    at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:54)
    at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53)
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:116)
    ... 2 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50)
    ... 3 more
Caused by: org.apache.axis2.schema.SchemaCompilationException: XSD complexType with mix content not supported in ADB
    at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1162)
    at org.apache.axis2.schema.SchemaCompiler.processAnonymousComplexSchemaType(SchemaCompiler.java:1049)
    at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:1001)
    at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:605)
    at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:573)
    at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:376)
    at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:248)
    at org.apache.axis2.schema.ExtensionUtility.invoke(ExtensionUtility.java:102)
    ... 8 more
fincatto commented 1 year ago

Oi @rafaelstelles. Já que está sendo feito esse esforço para migração, não seria o caso de removermos o Axis todo do sistema e fazer as chamadas com posts diretamente com as libs padrão do Java? Eu fiz isso em libs menores que dou manutenção também (como serviços dos Correios, que ainda usam webservices também) e o resultado foi excelente. O que acha?

rafaelstelles commented 1 year ago

Quando você fala lib padrões do Java, você tá se referindo a usar Java puro ou alguma lib ? Um dos meus receios é a parte dos certificados que é preciso trabalhar para fazer a request.

Um ponto que eu pensei que ajudaria de forma geral no projeto, seria remover o suporte a versão 3.10 do projeto. Você sabe se tem pessoas que utiliza ? Ou poderia iniciar uma outra versão, removendo essa versão e começamos a implementar as atualizações a partir dela. O que acha ?

Samuel-Oliveira commented 1 year ago

@rafaelstelles sobre seu erro é remover dos WSDL "mixed=true" ou colocar false.

@fincatto Eu ensaiei aqui varias vezes trocar o Axis, inclusive ttenho um projeto que roda com o Spring WS. Mas realmente acho q a migracao para Rest está proxima.

Com o NFSe Nacional e o Reinf ja rodando em REST. Acredito que a versao 5 já vira nesse contexto.

fincatto commented 1 year ago

Oi @Samuel-Oliveira. Seria ótimo! Sobre o NFSe Nacional, que você mencionou, já está rolando? Preciso emitir NFSe agora em varias prefeituras e seria ótimo se tivesse um ponto central para fazer isso.

aguinaldofryder commented 1 year ago

Oi @Samuel-Oliveira. Seria ótimo! Sobre o NFSe Nacional, que você mencionou, já está rolando? Preciso emitir NFSe agora em varias prefeituras e seria ótimo se tivesse um ponto central para fazer isso.

Em breve vamos precisar emitir nfse também. Qualquer implementação podem contar conosco.

Samuel-Oliveira commented 1 year ago

Sim @fincatto meio capenga, as vezes Offline mas já esta em producao. Todos os MEI já conseguem emitir por ela usando certificado. Swagger: https://www.producaorestrita.nfse.gov.br/swagger/contribuintesissqn/

Para quem não é MEi depende da prefeitura integrar, segue a relacao de quem ja integrou ou esta em processo de integracao: https://www.gov.br/nfse/pt-br/municipios-aderentes/municipios-aderentes

alecindro commented 1 year ago

com a atualização encontrei alguns conflitos de biblioteca e resolvi da seguinte maneira:

> <dependency>
> <groupId>org.apache.axis2</groupId>
> <artifactId>axis2-kernel</artifactId>
> <version>${axis2.version}</version>
> <scope>compile</scope>
> <exclusions>          
> <exclusion>
> <groupId>javax.servlet</groupId>
> <artifactId>servlet-api</artifactId>
> </exclusion>
>  <exclusion>
> <groupId>org.apache.geronimo.specs</groupId>
> <artifactId>geronimo-stax-api_1.0_spec</artifactId>
>  </exclusion>
> </exclusions>
> </dependency>
<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
<version>${simple-xml.version}</version>
<exclusions>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
rafaelstelles commented 1 year ago

@alecindro você fez a migração dessa lib para a versão 1.8.2 ?

alecindro commented 1 year ago

@alecindro você fez a migração dessa lib para a versão 1.8.2 ?

Não. A Axis mantive em 1.7.9

rafaelstelles commented 1 year ago

Alguém conhece algum lugar onde eu possa baixar todos os wsdl que é utilizado pelo projeto ? Eu consegui fazer a geração das classes para a versão 4, porém agora está quebrando os demais.

fincatto commented 6 months ago

Oi Rafael, boa tarde. Conseguiu seguir com essa atualização? Mantenho aberto aqui ainda?

rafaelstelles commented 6 months ago

Não, eu não consegui baixar os wsdl. Pode fechar, caso apareça alguém interessado no futuro, podemos reabrir.