Я разрабатываю приложение для Android, которое получает некоторые данные с веб-сервера, который я (или, скорее, кто-то еще) также создаю сам.Теперь, просто для тестирования, я хотел настроить простой веб-сервис на Джерси, к которому я могу получить доступ через httpGet.Чего я хочу добиться - это отправить какой-нибудь тестовый запрос и получить "тест!"Струна назад.Однако я никогда раньше не работал с веб-серверами, поэтому я чувствую себя немного потерянным.
Я последовал немецкому примеру "Hello World" (он должен показывать "Да" при вызовесайт localhost: 8080 / rest / сообщение из браузера).
Вот так выглядит мой код:
import java.io.IOException;
import java.net.InetAddress;
import javax.swing.JOptionPane;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.ext.Provider;
import com.sun.jersey.api.container.httpserver.HttpServerFactory;
import com.sun.net.httpserver.HttpServer;
@Path("test")
@Provider
public class Test
{
private static InetAddress adress;
public static void main(String[] args)
{
try
{
publishSite();
}
catch (IllegalArgumentException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println("Der WebServer wurde unter der Adresse \"http://" + adress.getHostAddress() + ":8080/test\" veröffentlicht.");
}
public static void publishSite() throws IllegalArgumentException, IOException
{
adress = InetAddress.getLocalHost();
HttpServer server = HttpServerFactory.create("http://" + adress.getHostAddress() + ":8080/");
server.start();
JOptionPane.showMessageDialog( null, "Ende" );
server.stop( 0 );
}
}
(Здесь я получил несколько ошибок, говорящих "Ограничение доступа: тип HttpServer недоступен из-за ограничения на требуемую библиотеку C: \Программа \ Java \ jre6 \ lib \ rt.jar ", которую я заменил на предупреждения, следуя руководству другого сайта. Плохая идея?)
и, из приведенного выше примера:
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
@Path("message")
public class Message {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String message() {
return "Yeah! ";
}
}
Теперь, если я пытаюсь получить доступ к localhost: 8080 / test / message, я получаю пустую страницу.То же самое с localhost: 8080 / тест.НО, также то же самое с любым случайным URL, который я могу придумать, например localhost: 8080 / blblab - что мне кажется немного странным.
При попытке получить доступ к нему из моего приложения для Android я получаю ошибку 404 наlocalhost: 8080 / test / message и ошибка 405 на локальном хосте: 8080 / test.
Если это поможет, я также выложу код Android;но я уже тестировал его в Google и получил html-строку, поэтому думаю, что это не является причиной моей проблемы.
Надеюсь, вы можете помочь, а также, что мой вопрос не слишком глуп.:) Заранее спасибо!
PS: пожалуйста, добавьте "http://" ко всем указанным выше местным ссылкам, я не могу публиковать более 2 ссылок. ^^