powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание простейшего веб-сервиса
19 сообщений из 19, страница 1 из 1
Создание простейшего веб-сервиса
    #33642159
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто подскажет как сделать самый простенький веб сервис на AXIS?
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642187
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WhiteDreamМожет кто подскажет как сделать самый простенький веб сервис на AXIS?

Комментарий: через classpath должен быть доступен WSDD файл

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
 public   class  CallbackReceiver {
   private   static   final  String WSDD_LOC = "deploy.wsdd";
   private   static  CallbackReceiver theInstance =  null ;
   private   final  HttpServer server;
   private   final  SocketListener listener;
   private   final  HttpContext context;

   private  CallbackReceiver( final  Config config) {
     this .server =  new  HttpServer(true);
     this .listener =  new  SocketListener( new  InetAddrPort(config.getCallbackPort()));
     this .server.addListener(listener);

     this .context =  new  HttpContext();
     this .context.setContextPath("/axis/*");
     this .server.addContext(context);

     final  ServletHandler servlets =  new  ServletHandler();

    servlets.addServlet("AxisServlet", "/servlet/AxisServlet",
            "org.apache.axis.transport.http.AxisServlet");
    servlets.addServlet("AxisServlet", "/services/*",
            "org.apache.axis.transport.http.AxisServlet");

     this .context.addHandler(servlets);
  }

   public   static   synchronized   void  init( final  Config config)  throws  CallbackReceiverException {
     if  (theInstance !=  null ) {
      close();
    }
    theInstance =  new  CallbackReceiver(config);
    theInstance.startJettyServer();
     final  String axisUrl =  new  StringBuffer("http://localhost:")
            .append(config.getCallbackPort())
            .append("/axis/servlet/AxisServlet").toString();
    theInstance.deployWebService(axisUrl);
  }

   public   static   synchronized   void  close() {
     if  (theInstance !=  null ) {
       final  CallbackReceiver oldInstance = theInstance;
      oldInstance.destroy();
    }
    theInstance =  null ;
  }

   private   void  startJettyServer()  throws  CallbackReceiverException {
     try  {
      server.start();
    }  catch  (MultiException e) {
       throw   new  CallbackReceiverException(e);
    }
  }

   private   void  deployWebService( final  String axisUrl)  throws  CallbackReceiverException {
     try  {
       final  AdminClient adminClient =  new  AdminClient(true);
      adminClient.setTargetEndpointAddress( new  URL(axisUrl));
      adminClient.process(MyServerSOAPSkeleton. class .getClassLoader().getResourceAsStream(WSDD_LOC));
    }  catch  (Exception e) {
       throw   new  CallbackReceiverException(e);
    }
  }

   private   void  destroy() {
    server.removeListener(listener);
     try  {
      server.stop(true);
    }  catch  (InterruptedException e) {
       try  { server.stop(); }  catch  (Exception e1) { }
    }
  }
}
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642189
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл - HttpServer - это Jetty 4.xx
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642212
mansch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, под jDeveloper 10 еще проще
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642223
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так что такое Jetty 4.xx и jDeveloper 10?
И что мне делать с WSDD-файлом
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642261
mansch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDeveloper среда разработки от Oracle
www.oracle.com
там все просто - создаешь класс, а из него генеришь веб сервис
wsdd - депйлоймент дескриптор
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642265
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в Axis это нельзя сделать или в Netbean?
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642311
ф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ф
Гость
для того, чтобы создать простенький вебсервис в Axis, самый простой способ, описанный в документации, это взять java-файл с исходным кодом класса, который что-то делает, сохранить его как .jws и поместить в папку веб-приложения Axis.

Axis сам его на лету откомпилирует класс, сделает wsdl файл, описывающий все его методы и станет принимать soap-запросы к нему по сети.

вотъ
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642318
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скопировал D:\axis-1_2_1\webapps\axis скопировал в webapps Tomcat и запустил http://localhost:8080/axis/
Затем сую в эту папку файл с расширением .jws. Он показвыает его в wsdl формате и все, а что должно произойти?
И как потом из простого клиента зайти на этот веб-сервис?
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33642320
ф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ф
Гость
WhiteDreamИ как потом из простого клиента зайти на этот веб-сервис?а я и сам не знаю.
наверно придется программировать, доки читать. пока мне это не нужно было :)

фишка в том, что клиент теперь может быть на чем угодно, хыть на перле. везде есть библиотеки для того, чтобы ты как будто делал некий объект и вызывал его методы локально, а оно само делает вызовы по протоколу SOAP к вашему jws на сервере. и в джава есть. тока как я уже говорил, я их еще не смарел.
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33643049
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WhiteDreamМожет кто подскажет как сделать самый простенький веб сервис на AXIS?

элементарно
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33643382
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот вырезал часть из userguide (приведена в конце). Деплой я запускаю и он выполняется нормально, а вот когда я запускаю
java samples.userguide.example3.Client
-lhttp://localhost:8080/axis/services/MyService "test me!"

То у меня вылезает следующее:
Unsble to find required classes (javax.activation. DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
The Axis engine could not find a target service invoce: targetService = null

Если я пробую запустить через Tomcat
http://localhost:8080/axis/services/MyService

То вылезает
MyService
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here...

Если же
http://localhost:8080/axis/services/MyService "test me!"

То получаю
AXIS error
No service is available at this URL

Переменные JDK, Axis, Tomcat я устанавливал по документации, библиотеки скопированы, в том числе xerces.jar и xml-apis.jar



2.1 Web Service Deployment Descriptor (WSDD)

deploy.wsdd – service descriptor
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="MyService" provider="java:RPC">
<parameter name="className" value="samples.userguide.example3.MyService"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>

MyService.java
package samples.userguide.example3;
public class MyService{
public String serviceMethod(String arg) {
return arg;
}
}

2.1.1. Translate Client.java:
javac samples\userguide\example3\Client.java

2.2 Service deploy

2.2.1 Start Tomcat

2.2.2 Deploy service: run AdminClient

java org.apache.axis.client.AdminClient deploy.wsdd
Processing file deploy.wsdd
<Admin>Done processing</Admin>



2.2.3. Run client:

java samples.userguide.example3.Client
-lhttp://localhost:8080/axis/services/MyService "test me!"
You typed : test me!

2.2.4. undeploy.wsdd

<undeployment xmlns="http://xml.apache.org/axis/wsdd/">
<service name="MyService"/>
</undeployment>
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33643459
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По шагам расписано , мне в свое время здорово помогло.
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33643624
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я читал эту статью и еще одну на этом сайте о разработке веб-сервисов.
Вот только это не решает мои проблемы с Axis.
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33643750
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие еще проблемы?
дескриптор сервиса ты получил, теперь тебе надо сгенерировать по нему заглушки; в приведенной статье это описано, читай внимательно
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33644791
WhiteDream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так пример запустил, все нормально работает. А как насчет JSP-страниц, как их сделать клиентами? Мне нужно чтобы пользователь заходил на JSP и регистрировался в базе данных с помощью веб-сервиса.
Коннектиться и заводить нового пользователя в базу данных я могу, с JSP-страницами тоже работал. (альтернативные способы к сожалению не подходят, так как у меня такое задание)
Как это будет выглядеть в общем виде?
Заранее спасибо.
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33649463
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем виде:
клиент выглядит так же: просто как Java код клиента вставленый в JSP.
Необходимые классы прокси можно уложить в jar и в lib web модуля.
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33659137
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Детально то как можно заиспользовать веб сервис из JSP/Servleta
на примере Axis и Tomcat описано
здесь .
Все шаги занимают 10-15 минут.
...
Рейтинг: 0 / 0
Создание простейшего веб-сервиса
    #33660425
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание простейшего веб-сервиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]