Не работает, когда () в сервисном макете json -rp c BusinessProcessManagementImpl при загрузке Spring
Тест
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BusinessProcessManagementServiceImplTest {
@LocalServerPort
int randomServerPort;
@Mock
BusinessProcessManagementServiceImpl businessProcessManagement;
@Before
public void before() {
SbtProcessInstance sbtProcessInstance = new SbtProcessInstance();
sbtProcessInstance.setId("sdfsdf");
when(businessProcessManagement.startProcess(any(), anyString())).thenReturn(sbtProcessInstance);
}
@Test
public void test() throws Throwable {
URL url = new URL("http://localhost:" + randomServerPort + "/businessProcessManagement");
JsonRpcRestClient client = new JsonRpcRestClient(url);
Map<String, Object> params = new HashMap<>();
SbtProcessDefinition sbtProcessDefinition = new SbtProcessDefinition();
sbtProcessDefinition.setId("processTest");
Message message = new Message();
message.setName("TestMessage");
DataObjectWrapper data = new DataObjectWrapper();
Map<String, Object> inData = new HashedMap();
inData.put("inn", "123123123");
data.setObjectData(inData);
message.setData(data);
params.put("process", sbtProcessDefinition);
params.put("globalInstanceId", "123456");
Long result = client.invoke("startProcess", params, Long.class);
System.out.println(result);
}
}
Сервис
@JsonRpcService("/businessProcessManagement")
public interface BusinessProcessManagementService {
SbtProcessInstance startProcess(@JsonRpcParam(value = "process") SbtProcessDefinition process,
@JsonRpcParam(value = "globalInstanceId") String globalInstanceId);
SbtProcessInstance startProcessWithMessage(@JsonRpcParam(value = "process") SbtProcessDefinition process,
@JsonRpcParam(value = "globalInstanceId") String globalInstanceId,
@JsonRpcParam(value = "message") Message message);
void sendMessage(@JsonRpcParam(value = "instanceId") String instanceId,
@JsonRpcParam(value = "message") Message message);
void sendResponse(@JsonRpcParam(value = "instanceId") String instanceId,
@JsonRpcParam(value = "correlationId") String correlationId,
@JsonRpcParam(value = "data") DataObjectWrapper data);
UserTaskWrapper startUserTask(@JsonRpcParam(value = "userTaskId") String userTaskId);
void completeUserTask(@JsonRpcParam(value = "userTaskId") String userTaskId,
@JsonRpcParam(value = "data") DataObjectWrapper data);
}
ServiceImpl
@Service
@AutoJsonRpcServiceImpl
public class BusinessProcessManagementServiceImpl implements BusinessProcessManagementService {
private final BusinessProcessManagementImpl businessProcessManagement;
public BusinessProcessManagementServiceImpl(BusinessProcessManagementImpl businessProcessManagement) {
this.businessProcessManagement = businessProcessManagement;
}
@Override
public SbtProcessInstance startProcess(SbtProcessDefinition process, String globalInstanceId) {
return businessProcessManagement.startProcess(process, globalInstanceId);
}
@Override
public SbtProcessInstance startProcessWithMessage(SbtProcessDefinition process, String globalInstanceId, Message message) {
return businessProcessManagement.startProcessWithMessage(process, globalInstanceId, message);
}
@Override
public void sendMessage(String instanceId, Message message) {
businessProcessManagement.sendMessage(instanceId, message);
}
@Override
public void sendResponse(String instanceId, String correlationId, DataObjectWrapper data) {
businessProcessManagement.sendResponse(instanceId, correlationId, data);
}
@Override
public UserTaskWrapper startUserTask(String userTaskId) {
return businessProcessManagement.startUserTask(userTaskId);
}
@Override
public void completeUserTask(String userTaskId, DataObjectWrapper data) {
businessProcessManagement.completeUserTask(userTaskId, data);
}
}
Этот проект построен с Maven. Обязательно проверьте pom. xml на наличие зависимостей, если вы не используете maven. Если вы уже используете Spring, у вас должно быть большинство (если не все) зависимостей - за исключением, возможно, библиотеки Джексона. Jsonrpc4j доступен из центрального репозитория Maven. Добавьте следующее в ваш pom. xml, если вы используете maven:
In:
<!-- jsonrpc4j -->
<dependency>
<groupId>com.github.briandilley.jsonrpc4j</groupId>
<artifactId>jsonrpc4j</artifactId>
<version>1.5.3</version>
</dependency>
Если вы хотите просто загрузить выходной JAR-файл проекта и его зависимости, вы можете сделать это в хранилище Maven.