gpt4 book ai didi

java - 发现全局预期 com.package.sameobj 的非法类 com.package.sameobj

转载 作者:行者123 更新时间:2023-11-30 05:52:23 25 4
gpt4 key购买 nike

我正在将 Spring 与 Drools 集成,但全局变量有问题。当我作为 Java 应用程序运行我的代码时,没有问题,但如果我作为 Spring 应用程序运行我的代码,我得到了全局预期 com.package.sameobj 发现 com.package.sameobj 的非法类错误

作为 Java 应用程序运行,一切正常:

package com.softarts.app;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.softarts.app.logic.Embargo;
import com.softarts.app.logic.Entidad;
import com.softarts.app.services.SystemExpertConfiguration;
import com.softarts.app.services.SystemExpertService;

public class main {

public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context = new AnnotationConfigApplicationContext(SystemExpertConfiguration.class);
SystemExpertService systemExpertService= (SystemExpertService) context.getBean(SystemExpertService.class);
String s=systemExpertService.calculateEmbargo();
System.out.println(s);
}

}

作为 Spring 应用程序运行,我收到此错误

java.lang.RuntimeException: Illegal class for global. Expected [com.softarts.app.systemexpert.datos.DataAmount], found [com.softarts.app.systemexpert.datos.DataAmount].
at org.drools.core.impl.StatefulKnowledgeSessionImpl.setGlobal(StatefulKnowledgeSessionImpl.java:1202)
at com.softarts.app.services.SystemExpertService.calculateEmbargo(SystemExpertService.java:28)
at com.softarts.app.controllers.DocumentController.uploadMultipleFiles(DocumentController.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:124)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:154)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:122)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:107)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

这是我的代码,

package com.softarts.app.services;

import org.kie.api.KieServices;
import org.kie.api.builder.KieBuilder;
import org.kie.api.builder.KieFileSystem;
import org.kie.api.builder.KieModule;
import org.kie.api.runtime.KieContainer;
import org.kie.internal.io.ResourceFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.softarts.app.services")
public class SystemExpertConfiguration {
public static final String drlFile = "reglas.drl";

@Bean
public KieContainer kieContainer() {
KieServices kieServices = KieServices.Factory.get();

KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
kieFileSystem.write(ResourceFactory.newClassPathResource(drlFile));
KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
kieBuilder.buildAll();
KieModule kieModule = kieBuilder.getKieModule();

return kieServices.newKieContainer(kieModule.getReleaseId());
}
}

并且,

package com.softarts.app.services;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;

import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.softarts.app.systemexpert.datos.DataAmount;
import com.softarts.app.systemexpert.model.Cuenta;

import com.softarts.app.systemexpert.enumeraciones.*;

import com.softarts.app.logic.Embargo;
import com.softarts.app.logic.Entidad;

@Service
public class SystemExpertService {

@Autowired
private KieContainer kContainer;

public String calculateEmbargo() {
KieSession kieSession = kContainer.newKieSession();
DataAmount datos = new DataAmount();
kieSession.setGlobal("datos", datos);
ArrayList<Cuenta> cuentas = new ArrayList<>();
cuentas.add(new Cuenta(TipoCuenta.AHORROS, SubtipoCuenta.BASICA, new BigDecimal(1000000),
LocalDate.of(2018, 11, 24)));
Embargo embargo = new Embargo();
for (Cuenta cuenta : cuentas) {
kieSession.insert(cuenta);
}
kieSession.insert(embargo);
kieSession.fireAllRules();
kieSession.dispose();
String informacion = "";
for (Cuenta cuenta : cuentas) {
informacion += "->La cuenta de " + cuenta.getTipo() + " de " + cuenta.getSubtipo() + " por un valor de "
+ cuenta.getMontoEmbargado() + "\n";
informacion += " en base a las siguientes leyes:" + "\n";
for (String regla : cuenta.getReglas()) {
informacion += "\t" + regla + "\n";
}
}
informacion += "El monto total embargado es: " + embargo.getMontoEmbargado() + "\n";
informacion += "El monto restante de embargar es: "
+ (embargo.getMontoEmbargar().subtract(embargo.getMontoEmbargado())) + "\n";
return informacion;
}
}

我从我的 Controller 调用该服务

    @PostMapping("uploadMultiple")
public String uploadMultipleFiles(@RequestParam("files") List<MultipartFile> files,
RedirectAttributes redirectAttributes, Model model) {
if (files.size() == 0) {
redirectAttributes.addFlashAttribute("info", "Please select a file to upload");
return "redirect:/docs/carga";
}
try {
// uploadFileService.saveMultipleFiles(files);
List<Embargo> embargos = new ArrayList<>();
List<InputStream> inputs = new ArrayList<>();
List<String> filenames = new ArrayList<>();
for (MultipartFile file : files) {
inputs.add(file.getInputStream());
System.out.println(file.getOriginalFilename());
filenames.add(file.getOriginalFilename().split("\\.")[0]);
}

List<String> texts = detectMultipleText(inputs);
int aux = 0;
for (String text : texts) {
GrammarModule grammar = new GrammarModule(text);
Embargo embargo = new Embargo(grammar.getDemandantes(), grammar.getDemandados(), grammar.getCuenta(),
grammar.getDireccion(), grammar.getFecha(), grammar.getMonto(), grammar.getOficio(),
grammar.getReferencia());
embargos.add(embargo);

for (Entidad entidad : embargo.getDemandados()) {
entidad.setCuenta(DataClass.selectCuentas(entidad.getIdentificacion()));
}

//////////////////////////
//HERE I CALL THE SERVICE/
/////////////////////////
ApplicationContext context = new AnnotationConfigApplicationContext(SystemExpertConfiguration.class);
SystemExpertService systemExpertService= (SystemExpertService) context.getBean(SystemExpertService.class);
String s=systemExpertService.calculateEmbargo();
System.out.println(s);
// Generando documento de respuesta

GeneratorModule gen = new GeneratorModule("./src/main/resources/res_templates/Modelo 2.docx",
new VariablePattern("#{", "}"));
gen.generateDocument(embargo, "C:\\Documentos\\" + filenames.get(aux) + ".docx");
embargo.setDocDir(filenames.get(aux) + ".docx");
aux++;
}

model.addAttribute("embargos", embargos);

System.out.println("");

} catch (Exception e) {
e.printStackTrace();
}
return "result";
}

最佳答案

解决方案:我删除热部署,我删除下一个依赖项

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>

关于java - 发现全局预期 com.package.sameobj 的非法类 com.package.sameobj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53676294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com