Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Web-service


Автор: Karta 2.2.2012, 10:21
Добрый день!
Пытаюсь научиться создавать простой веб-севис. Естественно по учебнику.
Но смогла задачу реализовать только на половину.
Страница у меня загружается, а вот сам сервис не работает, когда перехожу по ссылке на странице, вместо моего сервиса вылезает код...
В чем здесь может быть дело?...
Учебник, которым я пользуюсь :
 http://translate.google.ru/translate?hl=ru&sl=en&tl=ru&u=http%3A%2F%2Fwww.softwareagility.gr%2Findex.php%3Fq%3Dnode%2F21&anno=2

Код


HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Servlet.init() for servlet AxisServlet threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)


root cause 

java.lang.ClassFormatError: org/apache/axis2/deployment/util/PhasesInfo
    org.apache.axis2.engine.AxisConfiguration.<init>(AxisConfiguration.java:194)
    org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:855)
    org.apache.axis2.deployment.WarBasedAxisConfigurator.<init>(WarBasedAxisConfigurator.java:156)
    org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584)
    org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.12 logs.





Автор: Karta 2.2.2012, 18:40
Еще раз добрый день!

Сервис создала сама, все исправила и все работает.
Но у меня возникла другая забота: я должна этот сервис на страничку прикрепить свою Как это сделать?
Может кто подскажет?


Заранее спасибо

Автор: Samotnik 5.2.2012, 14:14
Цитата(Karta @  2.2.2012,  18:40 Найти цитируемый пост)

я должна этот сервис на страничку прикрепить свою Как это сделать?

Сервис, в традиционном его понимании, на страничку "прикреплять" не нужно. Веб сервис, это по сути java класс с паблик методами, которые можно дергать "из вне". Сервис должен крутиться на сервере, хотя бы http://tomcat.apache.org/ подойдёт. А клиент должен вызывать его методы. Клиент может быть раным, ЯП тут не важен.

Автор: sergioK1 7.2.2012, 23:36
   __

Автор: Karta 8.2.2012, 00:52
Я это поняла, спасибо за разъяснение.
Но вот у меня есть веб страничка, нужно организовать поис по этой страничке. Front-end, то есть шаблон я сделала с кнопочкой smile... Мне нужно, что б при вводе любого слова, на этой же самой странице, под поиском у меня вывдился результат...
Как этого добиться?

Спасибо

Автор: Karta 10.2.2012, 11:28
Добрый день,
хотела исправить сообщение. но поздно...
Я не правильно сформулировала задачу...
Есть веб- сервис, есть веб страничка с поиском. Что нужно сделать, что б при вызове веб службы, результат возвращался на веб- страничку?

Автор: Samotnik 10.2.2012, 15:58
Цитата(Karta @  10.2.2012,  11:28 Найти цитируемый пост)
Что нужно сделать, что б при вызове веб службы, результат возвращался на веб- страничку? 

Сервер посылает запрос на веб службу, принимает ответ, передает на клиент.

Автор: Karta 11.2.2012, 14:39
Это  я понимаю. Cоздала скрипт клиент, но наверное, как я думаю, в коде странице надо написать адрес, по которому находится веб сервис. Вот у меня вопрос : где конкретно в коде странице нужно указать путь и какой путь, WDSL?

Автор: Samotnik 12.2.2012, 23:21
Цитата(Karta @  11.2.2012,  14:39 Найти цитируемый пост)
Это  я понимаю. Cоздала скрипт клиент, но наверное, как я думаю, в коде странице надо написать адрес, по которому находится веб сервис.

AJAX не может отправлять запросы на сторонний сервер. 

Автор: Karta 14.2.2012, 01:36
Вот теперь ничего не понятно...
По примеру в учебнике, я создала простой сервис, затем клиента к этому сервису. Все работает. Как мне теперь из моей веб страницы обратиться к моему веб сервису? Мне нужно вызвать метод, как это сделать из HTML ?

Автор: Karta 14.2.2012, 02:40
А еще у меня вопрос.
Если я пишу простенький код hello.java

Код


package net.roseindia;
 public class HelloWorldService 
 {
   public String sayHello(String name) {
   System.out.println("Hello World Service called");
   return "Hello : " + name;
   }
 }


потом пишу клиента
Код


package net.roseindia; 
 import net.roseindia.*; 
 import net.roseindia.HelloWorldServiceStub.SayHello;
 public class Test {
  public static void main(String[] args) throws Exception {
  HelloWorldServiceStub stub = new HelloWorldServiceStub();
  //Create the request
 
  net.roseindia.HelloWorldServiceStub.SayHello  request = new 
    net.roseindia.HelloWorldServiceStub.SayHello();
 
  [color=red]request.setArgs0("Deepak Kumar");[/color] 
  //Invoke the service
   net.roseindia.HelloWorldServiceStub.SayHelloResponse response 
   = stub.sayHello(request);
   System.out.println("Response : " + response.get_return());
   }
 }  



request.setArgs0("Deepak Kumar") он выдает ошибку, что не правильно это request.setArgs0 
Почему, как правильно записать?

Автор: Samotnik 15.2.2012, 01:25
Karta, у тебя большая каша в голове. Вопросы сумбурные и противоречащие. Возьми и начни разбираться с самого начала по шагам.
По поводу последнего вопроса. Судя по всему ты генерила клиента с помощью AXIS. Нужно разобраться хорошо, что он там нагенерил

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)