Я работаю на веб-сервере Android с Jetty. Есть два файла: MainActivity.java и Servlet.java, который содержит мой главный сервер класса ExampleServlet. Файлы показаны ниже:
Servlet.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.http.HttpStatus;
class ExampleServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setStatus(HttpStatus.OK_200);
resp.getWriter().println("Hello World");
}
}
MainActivity.java
package com.example.joey.myproject;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import com.example.joey.myproject.ExampleServlet;
import javax.servlet.Servlet;
public class MainActivity extends AppCompatActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Server server = new Server(7070);
ServletContextHandler handler = new ServletContextHandler(server, "/example");
handler.addServlet(ExampleServlet.class, "/");
try {
server.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Когда я устанавливаю APK и запускаю, приложение вылетает. И я получаю эту ошибку на logcat:
08-28 10:07:02.869 29531-29531/com.example.joey.myproject E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at org.eclipse.jetty.server.HttpConfiguration.<init>(HttpConfiguration.java:61)
at org.eclipse.jetty.server.HttpConnectionFactory.<init>(HttpConnectionFactory.java:40)
at org.eclipse.jetty.server.ServerConnector.<init>(ServerConnector.java:96)
at org.eclipse.jetty.server.Server.<init>(Server.java:113)
at com.example.joey.myproject.MainActivity.onCreate(MainActivity.java:125)
at android.app.Activity.performCreate(Activity.java:5247)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2225)
at android.app.ActivityThread.access$600(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1301)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5071)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at org.eclipse.jetty.util.BufferUtil.toBuffer(BufferUtil.java:850)
at org.eclipse.jetty.http.HttpScheme.<init>(HttpScheme.java:52)
at org.eclipse.jetty.http.HttpScheme.<clinit>(HttpScheme.java:32)
at org.eclipse.jetty.server.HttpConfiguration.<init>(HttpConfiguration.java:61)
at org.eclipse.jetty.server.HttpConnectionFactory.<init>(HttpConnectionFactory.java:40)
at org.eclipse.jetty.server.ServerConnector.<init>(ServerConnector.java:96)
at org.eclipse.jetty.server.Server.<init>(Server.java:113)
at com.example.joey.myproject.MainActivity.onCreate(MainActivity.java:125)
at android.app.Activity.performCreate(Activity.java:5247)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2225)
at android.app.ActivityThread.access$600(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1301)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5071)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Что мне делать?