Я разработал код на стороне сервера (это проект спрингбут-спящий). Я использую httpInvokerServiceExporter.
(Поскольку я тестировал этот код для REST, существует класс EmployeeRestConntroller, но я прокомментировал это и также удалил все вещи в коде, связанном с этим.)
Ниже приведен код на стороне сервера
@ SpringBootApplication publi c class CruddemoApplication {
@Bean
HttpInvokerServiceExporter exporter(EmployeeService implementation) {
Class<EmployeeService> serviceInterface = EmployeeService.class;
HttpInvokerServiceExporter exporter = new HttpInvokerServiceExporter();
exporter.setServiceInterface(serviceInterface);
exporter.setService(implementation);
return exporter;
}
public static void main(String[] args) {
SpringApplication.run(CruddemoApplication.class, args);
}
}
Структура проекта на стороне сервера
На стороне клиента (это колебательная пружина. Я хотел вызвать службу на стороне сервера из некоторых JButtons слушатель действия, поэтому я использую свинг) Я использую HttpInvokerProxyFactoryBean.
Ниже приведен код,
publi c, класс UiApplication {
@Bean
HttpInvokerProxyFactoryBean service() {
HttpInvokerProxyFactoryBean rmiProxyFactory = new HttpInvokerProxyFactoryBean();
rmiProxyFactory.setServiceUrl("http://localhost:8080/EmployeeService");
rmiProxyFactory.setServiceInterface(EmployeeService.class);
return rmiProxyFactory;
}
public static void main(String[] args) {
//SpringApplication.run(UiApplication.class, args);
SpringApplicationBuilder builder = new SpringApplicationBuilder(UiApplication.class);
builder.headless(false);
ConfigurableApplicationContext context = builder.run(args);
EmployeeService empService = context.getBean(EmployeeService.class);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
System.out.println("Inside run " + Thread.currentThread().getName());
// TODO Auto-generated method stub
/*MainWindow swingControlDemo = new MainWindow();
swingControlDemo.showEventDemo();*/
empService.findById(1);
}
});
}
}
структура проекта на стороне клиента
Пожалуйста, объясните, что я делаю неправильно.
Я просматривал некоторые блоги по этому вопросу, но не смог понять, насколько я наивен в этом.
Также, если это возможно, кто-то может объяснить работу подробно (я видел несколько видео на этом, но все видео имеют вид с высоты птичьего полета.)
Заранее спасибо.