3
respostas

Implementação REST no STS com o erro "No implementation defined for org.apache.commons.logging.LogFactory" e a mesma solução em uma aplicação Java console funciona. Como soluciono este problema?

package com.terral.adopti.monitor.balanca.soap.api.soap;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Component;

import com.terral.adopti.monitor.balanca.soap.api.model.TabIn;
import com.terral.adopti.monitor.balanca.soap.api.model.TabOut;

import fsdbfxq01.DT_balanca_boi_outYETFRIG00022;
import fsdbfxq01.DT_balanca_boi_out_respYETFRIG00022_RESP;
import fsdbfxq01.SI_balanca_boi_sync_outBindingStub;
import fsdbfxq01.SI_balanca_boi_sync_outProxy;

@Component
public class SoapFsdbfxQ01 {

    public List<TabOut> performYfmfrigIntegracao(List<TabIn> inputTable, String usuarioWsdl, String senhaWsdl,
            String endPoint) {

        DT_balanca_boi_outYETFRIG00022[] request = null;
        DT_balanca_boi_out_respYETFRIG00022_RESP[] response = null;

        List<TabOut> outputTable = new ArrayList<>();
        List<DT_balanca_boi_outYETFRIG00022> outYetfrig00022List = new ArrayList<>();

        for (TabIn tabIn : inputTable) {
            outYetfrig00022List.add(new DT_balanca_boi_outYETFRIG00022(tabIn.getIdJava(), tabIn.getBrinco(),
                    tabIn.getPeso(), tabIn.getData(), tabIn.getHora()));
        }

        if (outYetfrig00022List.size() > 0) {
            request = new DT_balanca_boi_outYETFRIG00022[outYetfrig00022List.toArray().length];
            request = outYetfrig00022List.toArray(request);
        }

        // Cria e inicializa o endpoint do WSDL (URL)
        SI_balanca_boi_sync_outProxy proxy = new SI_balanca_boi_sync_outProxy(endPoint);

        // Informa o usuário e senha para acessar o WSDL
        SI_balanca_boi_sync_outBindingStub binding = (SI_balanca_boi_sync_outBindingStub) proxy
                .getSI_balanca_boi_sync_out();
        binding.setUsername(usuarioWsdl);
        binding.setPassword(senhaWsdl);

        try {
            response = binding.SI_balanca_boi_sync_out(request);
        } catch (RemoteException e) {
            e.printStackTrace();
        }

        if (response.length > 0) {
            for (int i = 0; i < response.length; i++) {

                String idJava = response[i].getID_JAVA() != null ? response[i].getID_JAVA() : "";
                String brincoSap = response[i].getBRINCO_SAP() != null ? response[i].getBRINCO_SAP() : "";
                String status = response[i].getSTATUS() != null ? response[i].getSTATUS() : "";
                String mensagem = response[i].getMENSAGEM() != null ? response[i].getMENSAGEM() : "";
                String data = response[i].getDATA() != null ? response[i].getDATA() : "";
                String hora = response[i].getHORA() != null ? response[i].getHORA() : "";
                String usuario = response[i].getUSUARIO() != null ? response[i].getUSUARIO() : "";

                outputTable.add(new TabOut(idJava, "", brincoSap, "", status, mensagem, data, hora, usuario));
            }
        }

        return outputTable;
    }

}
3 respostas

Esse erro "No implementation defined for org.apache.commons.logging.LogFactory" costuma ser problema de dependência.

Tenta adicionar a lib abaixo no seu pom.xml:

<dependency> 
  <groupId>commons-logging</groupId> 
  <artifactId>commons-logging</artifactId> 
  <version>1.0.3</version> 
</dependency>

Otávio, muito obrigado pelo retorno. Porém mesmo colocando a declaração de dependência no pom.xml continua retornando a mesma exceção. Esta exceção está ocorrendo pelo que estou observando ao tentar realizar algum tipo de serelização do objeto não está ocorrendo como devido.

seria nesta foreach....

for (TabIn tabIn : inputTable) {
            outYetfrig00022List.add(new DT_balanca_boi_outYETFRIG00022(tabIn.getIdJava(), tabIn.getBrinco(),
                    tabIn.getPeso(), tabIn.getData(), tabIn.getHora()));
        }

mais precisamente ao criar uma instância dessa classe. s DT_balanca_boi_outYETFRIG00022

Esta classe é gerada pelo assistente no eclipse quando criamos um projeto do Web Service Client e apontamos o no wsdl e com base na estrutura do wsdl o assistente gera as classe estruturais, proxys e bindings....

Aqui seria parte da exceção retornada....

java.lang.NoClassDefFoundError: Could not initialize class fsdbfxq01.DT_balanca_boi_outYETFRIG00022
    at com.terral.adopti.monitor.balanca.soap.api.soap.SoapFsdbfxQ01.performYfmfrigIntegracao(SoapFsdbfxQ01.java:30) ~[classes/:na]
    at com.terral.adopti.monitor.balanca.soap.api.soap.SoapClient.performYfmfrigIntegracao(SoapClient.java:72) ~[classes/:na]
    at com.terral.adopti.monitor.balanca.soap.api.service.SoapService.performYfmfrigIntegracao(SoapService.java:81) ~[classes/:na]
    at com.terral.adopti.monitor.balanca.soap.api.resource.SoapResource.criar(SoapResource.java:35) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_261]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_261]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_261]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_261]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) ~[tomcat-embed-core-9.0.17.jar:9.0.17]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.17.jar:9.0.17]