Я полностью схожу с ума здесь.Это первый раз, когда я использую Java, и все это мне очень страшно.
В любом случае, мне нужно создать небольшой проект Java Maven, в котором я слушаю определенный порт UDP (сценарий python atm, эмулирующийустройство, которое я должен использовать), а затем еще кое-что перед отправкой запроса на конкретный URL с двумя аргументами.
Я нашел эту библиотеку https://github.com/AsyncHttpClient/async-http-client, которая, кажется, получает хорошие отзывыи репутация.
Чего я достиг на данный момент?
- Мне удалось создать проект maven (очевидно)
- Написал класс получателя (работает отлично!) - Класс, который перехватывает UDP-сообщение и сохраняет все, что необходимо сохранить для последующего использования при отправке сообщения POST.
- Написал код, отвечающий за отправку сообщения POST с использованием библиотеки (я не уверен в этомработает, так как я не мог его запустить):
// To make post request to send data
AsyncHttpClient client = Dsl.asyncHttpClient();
BoundRequestBuilder postRequest = client
.preparePost("http://localhost:8080/my_custom_url/")
.addFormParam("id", myid)
.addFormParam("stream", inData);
// Asynchronous execution
postRequest.execute(new AsyncHandler<Object>() {
public State onStatusReceived(HttpResponseStatus responseStatus) throws Exception {
System.out.print("\nstatus received");
return null;
}
public State onHeadersReceived(HttpHeaders headers) throws Exception {
System.out.print("\nheaders received");
return null;
}
public State onBodyPartReceived(HttpResponseBodyPart bodyPart) throws Exception {
System.out.print("\nbody part received");
return null;
}
public void onThrowable(Throwable t) {
}
public Object onCompleted() throws Exception {
System.out.print("\nexecute completed");
return null;
}
});
// Close to stop memory leaks after we are done
try { client.close(); } catch (IOException e) { infoBox("Could not close AsyncHttpClient.", "Error");
System.exit(0); }
Построил проект maven (изнутри eclipse), выполнив: pom.xml> Щелкните правой кнопкой мыши> Run As> Maven Build ...> Цель, заданная как «пакет»
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MyProject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ MyProject ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\me\eclipse-workspace\MyProject\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ MyProject ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ MyProject ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\me\eclipse-workspace\MyProject\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ MyProject ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ MyProject ---
[INFO] Surefire report directory: C:\Users\me\eclipse-workspace\MyProject\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running me.company.MyProject.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ MyProject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.044 s
[INFO] Finished at: 2018-05-21T13:23:49+03:00
[INFO] Final Memory: 10M/245M
[INFO] ------------------------------------------------------------------------
Пробовал работать через powershell, выполняя следующие действия:
PS C:\Users\me\eclipse-workspace\MyProject\target> java -cp .\MyProject-0.0.1-SNAPSHOT.jar me.company.MyProject.App
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/asynchttpclient/AsyncHandler
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.asynchttpclient.AsyncHandler
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more
Буду признателен за любую помощь по этому поводу.Рад предоставить больше информации, когда это необходимо.