how can i solve this problem? i have seen some solutions but these solutions did not help me. here is the complete error.
java.lang.IllegalArgumentException: Invalid character found in the request target [/workerJpas%7B?page,size,sort} ]. The valid characters are defined in RFC 7230 and RFC 3986 org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:494) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:269) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:832)
// this is my adapter.out which contains the variable workerJpas
public class ListWorkerImpl implements ListOfWorkerRepository{
WorkerJpaInterface workerJpaInterface;
@Override
public List<Worker> findAll() {
List<WorkerJpa> jpaWorkers = workerJpaInterface.findAll();
List<Worker> domWorkers = new ArrayList<>();
for(WorkerJpa jpaWorker : jpaWorkers) {
Worker domWorker = new Worker();
domWorker.setPhoneNumber(jpaWorker.getPhoneNumber());
domWorker.setFirstName(jpaWorker.getFirstName());
domWorker.setId(jpaWorker.getId());
domWorker.setLastName(jpaWorker.getLastName());
domWorker.setIfu(jpaWorker.getIfu());
domWorker.setImageParth(jpaWorker.getWorkerPicture());
domWorker.setWorkerType(jpaWorker.getWorkerType());
domWorker.setStatut(jpaWorker.getStatut());
domWorkers.add(domWorker);
}
return domWorkers;
}
}
// here is a usecase
@Service
public class ListOfWorkerImpl implements ListOfWorker{
@Autowired
private ListOfWorkerRepository listOfWorkerRepository;
@Override
public List<Worker> findAll(){
return listOfWorkerRepository.findAll();
}
}
// here is my adapter.in
@RestController
public class WorkerController {
private ListOfWorker listOfWorker;
@Autowired
public WorkerController(ListOfWorker listOfWorker) {
this.listOfWorker = listOfWorker;
}
// here is how the REST endpoint is called
@GetMapping
public List<Worker> getWorkers() {
return listOfWorker.findAll();
}
}
// here port.in
public interface ListOfWorker {
public List<Worker> findAll();
}