BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 20:50

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Помогите с SOAP
СообщениеДобавлено: 01 июл 2013, 20:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
С самого нуля, хотяб ссылки, есть система, с ней в обои стороны обмениваться по SOAP, как использовать скачанные WSDL и тд., хотяб ссылками

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 01 июл 2013, 20:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
да, это все с биллингом стыковать нужно

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 01 июл 2013, 20:40 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
jdk/bin/wsimport ./MngFacadeAPI.WSDL -s src -p api.ru.televox.bgbilling...mng
jdk/bin/wsimport ./Mng2FacadeAPI.WSDL -s src -p api.ru.televox.bgbilling...mng2

Результат из папки src (которую предварительно нужно создать) положить в BGBilling/dyn.

Предположим, первая wsdl - это удаленый сервис, чтобы с ним работать, нужно сделать так:
Код:
      MngFacadeAPI mngFacadeAPI = new MngFacadeAPIService( new URL( "http://host:port/application/api/MngFacadeAPI?wsdl" ) ).getMngFacadeAPIPort();
      Map<String, Object> requestContext = ((BindingProvider)mngFacadeAPI).getRequestContext();
      requestContext.put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://host:port/application/api/MngFacadeAPI" );

Второй нужно реализовать на BGBilling - в пакете (папке) api.ru.televox.bgbilling...mng2 нужно создать пакет (папку) impl, в нем создать класс Mng2FacadeAPIImpl.java и реализовать в нем методы из Mng2FacadeAPI
Код:
@WebService(endpointInterface = "ru.televox.bgbilling...mng2.Mng2FacadeAPI")
public class Mng2FacadeAPIImpl
    extends AbstractService
    implements Mng2FacadeAPI
{
}
В результате web-сервис должен стать доступен по адресу http://bgb:8080/bgbilling/api/ru.televo ... deAPI?wsdl


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 06:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
По удаленному сервису, получилось у меня InventorySoap.wsdl положил я его /usr/local/BGBillingServer/dyn сюда, пытаюсь импортировать

Код:

package ru.skyb.scripts.behavior;

import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import inventory.Address;
import inventory.ArrayOfAvailabilityRequest;
import inventory.AvailabilityInfo;
import inventory.AvailabilityRequest;
import inventory.InventorySoap;
import inventory.InventorySoapSoap;

import java.net.URL;

import javax.xml.namespace.QName;


public class Astlu
   extends EventScriptBase
{
   @Override
   public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 )
      throws Exception
   {
   }

}

Ругается на импорт
Код:
import inventory.Address;
import inventory.ArrayOfAvailabilityRequest;
import inventory.AvailabilityInfo;
import inventory.AvailabilityRequest;
import inventory.InventorySoap;
import inventory.InventorySoapSoap;

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 14:35 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Нажимаете "скомпилировать все"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 15:08 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
да, нажимал, вот что в выводе


Вложения:
Выделение_096.png
Выделение_096.png [ 23.34 КБ | Просмотров: 16332 ]

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 15:15 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Класс, на который ссылаешься, подкладывать надо же.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 15:16 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
куда подкладывать?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 15:17 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
После генерации через wsimport должны были сгенерироваться классы, судя по всему в папке inventory - эту папку со всеми классами - в dyn.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 02 июл 2013, 16:35 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
неа, нужно папку classes запихать сюда
/usr/local/BGBillingServer/classes
о как

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 08:12 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Amir писал(а):
jdk/bin/wsimport ./MngFacadeAPI.WSDL -s src -p api.ru.televox.bgbilling...mng
jdk/bin/wsimport ./Mng2FacadeAPI.WSDL -s src -p api.ru.televox.bgbilling...mng2

Результат из папки src (которую предварительно нужно создать) положить в BGBilling/dyn.

Предположим, первая wsdl - это удаленый сервис, чтобы с ним работать, нужно сделать так:
Код:
      MngFacadeAPI mngFacadeAPI = new MngFacadeAPIService( new URL( "http://host:port/application/api/MngFacadeAPI?wsdl" ) ).getMngFacadeAPIPort();
      Map<String, Object> requestContext = ((BindingProvider)mngFacadeAPI).getRequestContext();
      requestContext.put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://host:port/application/api/MngFacadeAPI" );

Второй нужно реализовать на BGBilling - в пакете (папке) api.ru.televox.bgbilling...mng2 нужно создать пакет (папку) impl, в нем создать класс Mng2FacadeAPIImpl.java и реализовать в нем методы из Mng2FacadeAPI
Код:
@WebService(endpointInterface = "ru.televox.bgbilling...mng2.Mng2FacadeAPI")
public class Mng2FacadeAPIImpl
    extends AbstractService
    implements Mng2FacadeAPI
{
}
В результате web-сервис должен стать доступен по адресу http://bgb:8080/bgbilling/api/ru.televo ... deAPI?wsdl



По первому вроде понял, а вот по второму не особо, можно рабочий класс скинуть?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 14:59 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
http://bgbill.net:8080/bgbilling/api/ru ... /Zoho?wsdl
ссылка, скрипт
Код:
package api.ru.skyb.bgbilling.service.impl;


import java.sql.Connection;
import java.util.Date;

import javax.jws.WebService;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService;
import ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao;
import ru.bitel.bgbilling.kernel.tariff.option.common.bean.ContractTariffOption;
import java.text.SimpleDateFormat;

@WebService(endpointInterface = "api.ru.skyb.bgbilling.service.impl.ZohoImpl")
public class ZohoImpl
    extends AbstractService

{

}

но при переходе по ссылке
Код:
HTTP Status 500 -

type Status report

message

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

что не так?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 15:34 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Нужно в логах сервера ошибки смотреть.
Если просто свой сервис (а не реализация чужого интерфейса), то попробуйте:
Код:
@WebService()
public class ZohoImpl
    extends AbstractService
{
    public String test() {
        return "Hello world!";
    }
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 15:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
07-08/09:38:10 ERROR [bitel.billing.server.admin.action.ActionCommand] LoggingPrintStream - com.sun.xml.ws.model.RuntimeModelerException: A @WebService.targetNamespace must be specified on classes with no package. Class: api.ru.skyb.bgbilling.service.impl.ZohoImpl

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 15:40 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Код:
@WebService(targetNamespace = "http://billing.skyb.ru")
public class ZohoImpl
    extends AbstractService
{
    public String test() {
        return "Hello world!";
    }
}
или, например:
Код:
@WebService(targetNamespace = "urn:billing-zoho")


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 15:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Да, помогло, а из чего исходить выбирая эту переменную?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 16:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
а есть пример создания договора по шаблону?
Код:
package api.ru.skyb.bgbilling.service.impl;


import java.sql.Connection;
import java.util.Date;

import javax.jws.WebService;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService;
import ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao;
import ru.bitel.bgbilling.kernel.tariff.option.common.bean.ContractTariffOption;
import java.text.SimpleDateFormat;


import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.util.*;
import java.util.Date;
import bitel.billing.server.contract.bean.ContractManager;

import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.*;

@WebService(targetNamespace = "urn:billing-zoho")
public class ZohoImpl
    extends AbstractService
{

public Contract createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd)
{
//Не подскажите что сюда вставить чтоб по шаблону создался договор?????
}

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 16:59 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
http://bgbilling.ru/v6.0/javadoc/bitel/billing/server/contract/bean/ContractManager.html#createFromPattern(int, java.lang.String, java.util.Calendar, java.lang.String, java.util.Map, boolean, int, int, java.lang.String, int, java.util.Map)
Код:
         ContractManager contractManager = new ContractManager( context.getConnection() );
         Contract contract = contractManager.createFromPattern( card.getPatternId(), null, new GregorianCalendar(), card.getCardPinCode(), new HashMap<String, Object>(),
            true, 0, 0, null, User.USER_SERVER, params );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 17:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
нене, мне же нужно передать эти параметры со стороннего приложения

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 17:18 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Код:
 Contract contract = contractManager.createFromPattern( pattern_id, null, date, pswd, new HashMap<String, Object>(), true, 0, 0, title, User.USER_SERVER, params );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 08 июл 2013, 17:25 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Amir писал(а):
Код:
 Contract contract = contractManager.createFromPattern( pattern_id, null, date, pswd, new HashMap<String, Object>(), true, 0, 0, title, User.USER_SERVER, params );

Код:
package api.ru.skyb.bgbilling.service.impl;


import java.sql.Connection;
import java.util.Date;

import javax.jws.WebService;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService;
import ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionDao;
import ru.bitel.bgbilling.kernel.tariff.option.common.bean.ContractTariffOption;
import java.text.SimpleDateFormat;


import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.util.*;
import java.util.Date;
import bitel.billing.server.contract.bean.ContractManager;

import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.*;

@WebService(targetNamespace = "urn:billing-zoho")
public class ZohoImpl
    extends AbstractService
{

GregorianCalendar nowDate = new GregorianCalendar();
      
Connection con = getConnection();    

ContractManager contractManager = new ContractManager( context.getConnection() );
public Contract createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd)
throws BGException
{
Contract contract = contractManager.createFromPattern( pattern_id, null, date, pswd, new HashMap<String, Object>(), true, 0, 0, title, User.USER_SERVER, params );

}
}


Вложения:
Выделение_099.png
Выделение_099.png [ 12.09 КБ | Просмотров: 16265 ]

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 15 июл 2013, 19:30 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
А ещё вопрос, урл должен обязательно быть с ?wsdl чтоб увидеть там реализованные методы?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 16 июл 2013, 06:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
разобрался

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 09 авг 2013, 15:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
а какой soap используется в биллинге?
SoapRpc или SoapDocument

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 11 сен 2013, 23:24 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2013, 11:10
Сообщения: 20
Откуда: Шадринск
Карма: 0
Надеюсь не против если я здесь пофлужу чутка)
В общем целом то же самое нужно реализовать, скомпилил без ошибок вышеприведенный код (порадовался, забавно скомпилить то не знаю что...) В итоге понял что не в курсе что есть soap... Разобрался более менее, представил. Понял что втянуться быстро не получится, решил начать с простого взял имеющийся пример http://wiki.bitel.ru/index.php/PHP_soapClient
Более менее разобрал что к чему, в итоге не могу понять каким образом передать несколько переменных в функцию через soap..
php скрипт
Код:
$wsdl = "http://192.168.0.1:8080/bgbilling/api/ru.customservice.bgbilling.service/SomeService?wsdl";
$client = new SoapClient($wsdl);
$answer = $client->getSomeData('Aleks', 'Timur');
var_dump ($answer);
$cid=$answer->return->cid;
echo "Output: $cid\n";


Ну и динамический код в bgbilling'е
Код:
package api.ru.customservice.bgbilling.service.impl;
 
import javax.jws.WebService;
import api.ru.customservice.bgbilling.bean.SomeData;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
 
@WebService(targetNamespace = "customservice")
public class SomeServiceImpl
    extends AbstractService{
     /**
     * @param a
     * @soap
     * @return
    */
   public SomeData getSomeData( String a, String b )
    {
      a = "Hello " + a + " " + b;
      SomeData someData = new SomeData();
      someData.setCid( a );
 
   return someData;
   }
}

Все что удалось получить в ответ:
Код:
object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (1) { ["cid"]=> string(15) "Hello null null" } } Output: Hello null null


Во всех мануалах аргументы функции передаются в виде одномерного массива(мне как бы больше и не требуется), но как бы я не пробовал, мне не удается заставить вывести переменные. Хоть как в моем варианте, хоть так:
Код:
client->__soapCall("getSomeData", array('Aleks', 'Timur'));

хоть как в примере(чего я какраз до сих пор не могу понять - почему вложенный массив в массив)
Код:
client->__soapCall("getSomeData", array(array('Aleks', 'Timur')));

И через массив попробовал
менял получение аргумента в виде массива
Код:
public SomeData getSomeData( String[] a )

чем черт не шутит, но что то не поддается ни с какого угла мне эта функция. В чем я не прав?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 11 сен 2013, 23:51 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
на вики
Цитата:
$answer = $client->__SoapCall("getSomeData", array( array ( 'arg0' => 'Aleks0', 'arg1' => 'Aleks1' ) ) );

по моему ваш вариант отличается...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 12 сен 2013, 00:02 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2013, 11:10
Сообщения: 20
Откуда: Шадринск
Карма: 0
skn писал(а):
на вики
Цитата:
$answer = $client->__SoapCall("getSomeData", array( array ( 'arg0' => 'Aleks0', 'arg1' => 'Aleks1' ) ) );

по моему ваш вариант отличается...

Да вроде тоже пробовал, мы получаем первую переменную, но, вторую не удается получить. Просто если я совсем все вариации запишу которые появлялись у меня в голове - это будет смешно)
Код:
object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (1) { ["cid"]=> string(17) "Hello Aleks0 null" } } Output: Hello Aleks0 null


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 12 сен 2013, 01:03 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
а если так
Код:
public SomeData getSomeData( String a, String b )

меняем на
Код:
public SomeData getSomeData( @WebParam( name = "a" ) String a, @WebParam( name = "b" ) String b )

и вызывать
Код:
$answer = $client->__SoapCall("getSomeData", array( "getSomeData" => array ( 'a' => 'Aleks0', 'b' => 'Aleks1', ) ) );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 12 сен 2013, 01:19 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2013, 11:10
Сообщения: 20
Откуда: Шадринск
Карма: 0
Вот кстати еще примерчик с массивом, тут error на выходе не понятной для меня консистенции.
биллинг
Код:
package api.ru.customservice.bgbilling.service.impl;
 
import javax.jws.WebService;
import api.ru.customservice.bgbilling.bean.SomeData;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
 
@WebService(targetNamespace = "customservice")
public class SomeServiceImpl
    extends AbstractService{
     /**
     * @param a
     * @soap
     * @return
    */
   public SomeData getSomeData( String[] a )
    {
      String b = "Hello " + a[0] + " " + a[1];
      SomeData someData = new SomeData();
      someData.setCid( b );
 
   return someData;
   }
}

php скрипт
Код:
$wsdl = "http://192.168.0.1:8080/bgbilling/api/ru.customservice.bgbilling.service/SomeService?wsdl";
$client = new SoapClient($wsdl);
$answer = $client->__SoapCall("getSomeData", array( array ( 'arg0' => 'Aleks0', 'arg1' => 'Aleks1' ) ) );
var_dump ($answer);
$cid=$answer->return->cid;
echo "Output: $cid\n";

Ошибка:
Код:
Fatal error: Uncaught SoapFault exception: [S:Server] 1 in /путь до скрипта/soap.php:16 Stack trace: #0 /путь до скрипта/soap.php(16): SoapClient->__soapCall('getSomeData', Array) #1 {main} thrown in /путь до скрипта/soap.php on line 16

16я строчка в коде
Код:
$answer = $client->__SoapCall("getSomeData", array( array ( 'arg0' => 'Aleks0', 'arg1' => 'Aleks1' ) ) );

SoapFault:
Код:
object(SoapFault)#5 (10) { ["message":protected]=> string(1) "1" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(46) "/путь до скрипта/soap.php" ["line":protected]=> int(16) ["trace":"Exception":private]=> array(1) { [0]=> array(6) { ["file"]=> string(46) "/путь до скрипта/soap.php" ["line"]=> int(16) ["function"]=> string(10) "__soapCall" ["class"]=> string(10) "SoapClient" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> string(11) "getSomeData" [1]=> array(1) { [0]=> array(2) { ["arg0"]=> string(6) "Aleks0" ["arg1"]=> string(6) "Aleks1" } } } } } ["previous":"Exception":private]=> NULL ["faultstring"]=> string(1) "1" ["faultcode"]=> string(8) "S:Server" ["detail"]=> object(stdClass)#2 (1) { ["exception"]=> object(stdClass)#3 (2) { ["message"]=> string(1) "1" ["stackTrace"]=> object(stdClass)#4 (1) { ["frame"]=> array(43) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) "" [6]=> string(0) "" [7]=> string(0) "" [8]=> string(0) "" [9]=> string(0) "" [10]=> string(0) "" [11]=> string(0) "" [12]=> string(0) "" [13]=> string(0) "" [14]=> string(0) "" [15]=> string(0) "" [16]=> string(0) "" [17]=> string(0) "" [18]=> string(0) "" [19]=> string(0) "" [20]=> string(0) "" [21]=> string(0) "" [22]=> string(0) "" [23]=> string(0) "" [24]=> string(0) "" [25]=> string(0) "" [26]=> string(0) "" [27]=> string(0) "" [28]=> string(0) "" [29]=> string(0) "" [30]=> string(0) "" [31]=> string(0) "" [32]=> string(0) "" [33]=> string(0) "" [34]=> string(0) "" [35]=> string(0) "" [36]=> string(0) "" [37]=> string(0) "" [38]=> string(0) "" [39]=> string(0) "" [40]=> string(0) "" [41]=> string(0) "" [42]=> string(0) "" } } } } }


По предложенному вами варианту, сделал как сказали:
биллинг
Код:
package api.ru.customservice.bgbilling.service.impl;

import javax.jws.WebParam;
import javax.jws.WebService;
import api.ru.customservice.bgbilling.bean.SomeData;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;
 
@WebService(targetNamespace = "customservice")
public class SomeServiceImpl
    extends AbstractService{
     /**
     * @param a
     * @soap
     * @return
    */
   public SomeData getSomeData( @WebParam( name = "a" ) String a, @WebParam( name = "b" ) String b )
    {
      String c = "Hello " + a + " " + b;
      SomeData someData = new SomeData();
      someData.setCid( c );
 
   return someData;
   }
}

php скрипт
Код:
$wsdl = "http://192.168.0.1:8080/bgbilling/api/ru.customservice.bgbilling.service/SomeService?wsdl";
$client = new SoapClient($wsdl);
$answer = $client->__SoapCall("getSomeData", array( "getSomeData" => array ( 'a' => 'Aleks0', 'b' => 'Aleks1', ) ) );
var_dump ($answer);
$cid=$answer->return->cid;
echo "Output: $cid\n";

Получаемс:
Код:
object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (1) { ["cid"]=> string(15) "Hello null null" } } Output: Hello null null

Бьюсь уже об эту вроде как легкую задачку со вчерашнего вечера и уже готов плакать и смеяться одновременно)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SOAP
СообщениеДобавлено: 12 сен 2013, 04:12 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
1) см. php.ini
Код:
[soap]
; Enables or disables WSDL caching feature.
; http://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=1

; Sets the directory name where SOAP extension will put cache files.
; http://php.net/soap.wsdl-cache-dir
soap.wsdl_cache_dir="/tmp"

; (time to live) Sets the number of second while cached file will be used
; instead of original one.
; http://php.net/soap.wsdl-cache-ttl
soap.wsdl_cache_ttl=86400

; Sets the size of the cache limit. (Max. number of WSDL files to cache)
soap.wsdl_cache_limit = 5


на время отладки отключить кеширование (первый параметр) и почистить кеш (каталог указан во втором параметре)

для метода
Код:
public SomeData getSomeData( String a, String b )

параметры будут называться arg0 и arg1
если написать так
Код:
public SomeData getSomeData( @WebParam( name = "aa" ) String aa, String bb )

параметры будут называться aa и arg1
узнать как называются параметры можно открыв wsdl в браузере, найти в ней параметр schemaLocation= и перейти по указаному в параметре адресу

Код:
$client = new SoapClient($wsdl, array( 'trace' => true ) );
#var_dump($client->__getFunctions());
$params = array('arg0'=>"Aleks0",'arg1'=>"Aleks1");
$answer = $client->getSomeData( $params );
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
#var_dump ($answer);
#print_r($answer);
$cid = $answer->return->cid;
echo "Output: $cid\n"


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.121s | 78 Queries | GZIP : On ]