forum.bitel.ru
http://forum.bitel.ru/

bitel.billing.server.util.exslt.Scripting
http://forum.bitel.ru/viewtopic.php?f=19&t=10303
Страница 1 из 3

Автор:  Inspire [ 20 мар 2015, 12:34 ]
Заголовок сообщения:  bitel.billing.server.util.exslt.Scripting

Куда делся метод invoke в 6.1 ?
И на это <fo:table-column column-width="proportional-column-width(1)"/> выкидывает
org.apache.fop.fo.ValidationException: Invalid property encountered on "fo:table": weight

вот весь код, кому интересно:
Код:
<xsl:template name="line">
      <fo:table table-layout="fixed" width="100%" weight="0.7pt" space-before="0.2cm" space-after="0.2cm">
         <fo:table-column column-width="proportional-column-width(1)"/>
         <fo:table-body>
            <fo:table-row>
               <fo:table-cell border-bottom-style="solid" border-bottom-width="0.7pt">
               </fo:table-cell>
            </fo:table-row>
         </fo:table-body>
      </fo:table>   
   </xsl:template>

Автор:  dimOn [ 20 мар 2015, 12:47 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Цитата:
И на это <fo:table-column column-width="proportional-column-width(1)"/> выкидывает
org.apache.fop.fo.ValidationException: Invalid property encountered on "fo:table": weight

ну написано же в чём ошибка, вы пробовали исправить?

Автор:  Inspire [ 20 мар 2015, 12:57 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

dimOn писал(а):
Цитата:
И на это <fo:table-column column-width="proportional-column-width(1)"/> выкидывает
org.apache.fop.fo.ValidationException: Invalid property encountered on "fo:table": weight

ну написано же в чём ошибка, вы пробовали исправить?


Я не понимаю, что это за ошибка :(

Автор:  dimOn [ 20 мар 2015, 13:54 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Дословный перевод:
Недопустимое свойство встречено в [элементе] "fo:table": weight

Автор:  dimOn [ 20 мар 2015, 13:54 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

вы с какой версии обновлялись на 6.1?

Автор:  Inspire [ 20 мар 2015, 14:05 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Ясно, понятно, спасибо, исправил, получилось. А что с методом invoke ? Обновления не было, сразу поставили версию 6.1. Просто на 5.1 метод invoke класса bitel.billing.server.util.exslt.Scripting работает. А в 6.1 нет. В doc-ах не смог найти. Использую его для создания счета в xsl.

Автор:  dimOn [ 20 мар 2015, 14:13 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

покажите как используете

Автор:  Inspire [ 20 мар 2015, 14:16 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Код:
<xsl:stylesheet
   version="1.0"
          ..............
   xmlns:script="bitel.billing.server.util.exslt.Scripting">
           .............
   <xalan:component prefix="script" functions="invoke">
      <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.Scripting"/>
   </xalan:component>
              ...............
        <xsl:variable name="in_debt" select="script:invoke('dogsUtil','getInrest',$cidU,$mm,$yy)"/>

          ...................
</xsl:stylesheet>

Автор:  dimOn [ 20 мар 2015, 14:21 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

хм, ну в общем ничего там вроде не менялось, скорее всего это у вас не работает то, что вы пытаетесь invoke.
Ну т.е. что это вообще такое и чьё - dogsUtil.getInrest, если вы просто взяли код из 5.1 так оно с вероятностью 99% не заработает без правок.
Ищите в логах ошибки, короче.

Автор:  Inspire [ 20 мар 2015, 14:27 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

dimOn писал(а):
хм, ну в общем ничего там вроде не менялось, скорее всего это у вас не работает то, что вы пытаетесь invoke.
Ну т.е. что это вообще такое и чьё - dogsUtil.getInrest, если вы просто взяли код из 5.1 так оно с вероятностью 99% не заработает без правок.
Ищите в логах ошибки, короче.


Да, я взял из 5.1. Но фишка в том, что оттуда я взял еще методы replace и maskBlank, которые в 6.1 не работали, пока я не исправил это

Код:
          xmlns:utils="bitel.billing.server.util.Utils"

     <xalan:component prefix="utils" functions="maskBlank, replace">
             <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.Utils"/>
     </xalan:component>


на это
Код:
   xmlns:utils_maskBlank="ru.bitel.common.Utils"
   xmlns:utils_replace="ru.bitel.bgbilling.server.util.ServerUtils"


   <xalan:component prefix="utils_maskBlank" functions="maskBlank">
             <xalan:script lang="javaclass" src="xalan://ru.bitel.common.Utils"/>
     </xalan:component>

    <xalan:component prefix="utils_replace" functions="maskBlank">
             <xalan:script lang="javaclass" src="ru.bitel.bgbilling.server.util.ServerUtils"/>
     </xalan:component>


Т.е. название классов разные. Я не могу тут http://bgbilling.ru/v6.1/javadoc найти класс для метода invoke. Если он есть, то нужно просто заменить адрес в xalan. А если нет, то придется разбираться, что этот метод делает и писать ему альтернативу, так как счет этот на 5.1. писал не я, но мне нужно сделать такой же на 6.1.

Поэтому прошу, если кто знает, подсказать, в каком классе он находится (этот метод invoke), либо рассказать, что делает метод Invoke.

Автор:  Inspire [ 20 мар 2015, 15:53 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Неужели никто не знает :(

Автор:  dimOn [ 20 мар 2015, 15:58 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Цитата:
Поэтому прошу, если кто знает, подсказать, в каком классе он находится (этот метод invoke), либо рассказать, что делает метод Invoke.

в смысле? метод invoke находится в bitel.billing.server.util.exslt.Scripting и просто вызывает указанный метод ('getInrest') из указанной библиотеки скриптов ('dogsUtil')
его расположение не изменилось и он скорее всего потому работает, а не работает ваш скрипт, как я выше сказал

Автор:  Inspire [ 20 мар 2015, 16:04 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

dimOn писал(а):
Цитата:
Поэтому прошу, если кто знает, подсказать, в каком классе он находится (этот метод invoke), либо рассказать, что делает метод Invoke.

в смысле? метод invoke находится в bitel.billing.server.util.exslt.Scripting и просто вызывает указанный метод ('getInrest') из указанной библиотеки скриптов ('dogsUtil')
его расположение не изменилось и он скорее всего потому работает, а не работает ваш скрипт, как я выше сказал

Да? Тогда попробуйте найти его в Javadoc-ах 6.1. версии http://bgbilling.ru/v6.1/javadoc/ :)

Автор:  dimOn [ 20 мар 2015, 16:11 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Я его в исходниках 6.1 нашёл) Да его там просто и не нужно, видимо (если вообще раньше был), это внутренний служебный класс. Я вам сказал, что он на месте и метод там есть такой. Проверяйте скрипт указанный, см. в логи там всё должно быть.

Автор:  stark [ 20 мар 2015, 16:16 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Inspire писал(а):
dimOn писал(а):
Цитата:
Поэтому прошу, если кто знает, подсказать, в каком классе он находится (этот метод invoke), либо рассказать, что делает метод Invoke.

в смысле? метод invoke находится в bitel.billing.server.util.exslt.Scripting и просто вызывает указанный метод ('getInrest') из указанной библиотеки скриптов ('dogsUtil')
его расположение не изменилось и он скорее всего потому работает, а не работает ваш скрипт, как я выше сказал

Да? Тогда попробуйте найти его в Javadoc-ах 6.1. версии http://bgbilling.ru/v6.1/javadoc/ :)


А 5.1 вы его можете найти ? :)

http://bgbilling.ru/v5.1/javadoc/index.html

Вам же говорят - ничего не изменилось. Путь к классу такой же, сам класс не менялся, и javadoc по прежнему не попадает :)( у нас там не все классы попадают).

Автор:  stark [ 20 мар 2015, 16:19 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

вы посмотрите в логах ошибки. Там есть что-нибудь ?

Автор:  Inspire [ 20 мар 2015, 16:35 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

stark писал(а):
вы посмотрите в логах ошибки. Там есть что-нибудь ?


нету. Знаю, в 5.1. его тоже нету... Его нигде нету.. :) Ну хоть где можно прочитать, что он делает-то?

Автор:  stark [ 20 мар 2015, 16:40 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Inspire писал(а):
stark писал(а):
вы посмотрите в логах ошибки. Там есть что-нибудь ?


нету. Знаю, в 5.1. его тоже нету... Его нигде нету.. :) Ну хоть где можно прочитать, что он делает-то?


http://wiki.bitel.ru/index.php/BGBilling_XSLT

вы нашу просьбу об ошибках в логах сознательно игнорируете ?? надо ответ есть ошибки или нет.


вот вам исходник этот класса(если вам чем-то это поможет , скорее всего нет. )
Код:

package bitel.billing.server.util.exslt;

import java.sql.Connection;

import ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance;
import ru.bitel.bgbilling.server.util.ServerUtils;
import ru.bitel.bgbilling.server.util.Setup;
import bitel.billing.server.script.bean.ScriptMachineManager;

public class Scripting
{
    /**
     * временно, потом перенесем куда-нибудь
     */
    public static final ThreadLocal<Connection> threadConnection = new ThreadLocal<Connection>();

   public Scripting()
   {
   }

   public Object invoke( String library, String method, Object[] args ) throws Exception
   {
      Object result = null;
      Connection con = null;
      
      try
        {
           con = Setup.getSetup().getDBConnectionFromPool();
           threadConnection.set( con );
           ScriptInstance script = ScriptMachineManager.getManager().getScriptForLibrary( library );
           if( script == null )
           {
              throw new Exception( "Library '" + library + "' not found." );
           }
           result = script.invoke( method, args);
        }
        finally
        {
           threadConnection.remove();
           ServerUtils.closeConnection( con );              
        }
      return result;
   }

   public Object invoke( String library, String method, String input ) throws Exception
   {
      return invoke( library, method, new Object[] { input } );
   }

   public Object invoke( String library, String method ) throws Exception
   {
      return invoke( library, method, new Object[] {} );
   }

   public Object invoke( String library, String method, Object arg1 ) throws Exception
   {
      return invoke( library, method, new Object[] { arg1 } );
   }

   public Object invoke( String library, String method, Object arg1, Object arg2 ) throws Exception
   {
      return invoke( library, method, new Object[] { arg1, arg2 } );
   }

   public Object invoke( String library, String method, Object arg1, Object arg2, Object arg3 ) throws Exception
   {
      return invoke( library, method, new Object[] { arg1, arg2, arg3 } );
   }

   public Object invoke( String library, String method, Object arg1, Object arg2, Object arg3, Object arg4 )
           throws Exception
   {
      return invoke( library, method, new Object[] { arg1, arg2, arg3, arg4 } );
   }

   public Object invoke( String library, String method, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5 )
           throws Exception
   {
      return invoke( library, method, new Object[] { arg1, arg2, arg3, arg4, arg5 } );
   }
}


Автор:  Inspire [ 20 мар 2015, 16:44 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Не игнорирую я никого, я ответил, что нету

Inspire писал(а):
stark писал(а):
вы посмотрите в логах ошибки. Там есть что-нибудь ?


нету. Знаю, в 5.1. его тоже нету... Его нигде нету.. :) Ну хоть где можно прочитать, что он делает-то?

Автор:  stark [ 20 мар 2015, 16:49 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Inspire писал(а):
Не игнорирую я никого, я ответил, что нету

Inspire писал(а):
stark писал(а):
вы посмотрите в логах ошибки. Там есть что-нибудь ?


нету. Знаю, в 5.1. его тоже нету... Его нигде нету.. :) Ну хоть где можно прочитать, что он делает-то?



А что именно сейчас не работает ?

Автор:  Inspire [ 20 мар 2015, 17:04 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

В счете не выводятся данные, которые получаются этим методом, и код, который прописан ниже этого метода, также не выводится в счете.
Скрин счета с использованием метода invoke:
Вложение:
Комментарий к файлу: картинка 1 - с методом Invoke
картинка 1 - с методом invoke.jpg
картинка 1 - с методом invoke.jpg [ 30.61 КБ | Просмотров: 17256 ]


Вот скрин счета, где я за место метода поставил константные значения:
Вложение:
Комментарий к файлу: картинка 2 - с константными значениями
картинка 2 - с константными значениями.jpg
картинка 2 - с константными значениями.jpg [ 39.29 КБ | Просмотров: 17256 ]

Автор:  Inspire [ 20 мар 2015, 17:07 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Простите, вот правильная картинка 2. В предыдущем посте тоже исправил.
Вложение:
Комментарий к файлу: картинка 2 - с константными значениями
картинка 2 - с константными значениями.jpg
картинка 2 - с константными значениями.jpg [ 39.29 КБ | Просмотров: 17256 ]


В первом случае код такой
Код:
<xsl:variable name="in_debt" select="script:invoke('dogsUtil','getInrest',$cidU,$mm,$yy)"/>

Во втором
Код:
<xsl:variable name="in_debt" select="10"/>

Автор:  stark [ 20 мар 2015, 17:13 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

вы добавьте вывод в лог вначале метода и в конце , и ищите эти фразы в логах.

Автор:  Inspire [ 20 мар 2015, 17:14 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

stark писал(а):
вы добавьте вывод в лог вначале метода и в конце , и ищите эти фразы в логах.


Извиняюсь за возможно глупый вопрос, но, где его добавить? В xsl файле? И как?

Автор:  stark [ 20 мар 2015, 17:17 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Inspire писал(а):
stark писал(а):
вы добавьте вывод в лог вначале метода и в конце , и ищите эти фразы в логах.


Извиняюсь за возможно глупый вопрос, но, где его добавить? В xsl файле? И как?



в библиотеке скриптов dogsUtil, метод getInrest.
Надо проверить что он вызывается.

Автор:  Inspire [ 20 мар 2015, 17:19 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

stark писал(а):
Inspire писал(а):
stark писал(а):
вы добавьте вывод в лог вначале метода и в конце , и ищите эти фразы в логах.


Извиняюсь за возможно глупый вопрос, но, где его добавить? В xsl файле? И как?



в библиотеке скриптов dogsUtil, метод getInrest.
Надо проверить что он вызывается.

Вот это поворот. Сейчас попробую

Автор:  Inspire [ 20 мар 2015, 17:26 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Кажется, я понял, в чем дело... в библиотеке скриптов в 6.1 ни одного скрипта... :D

Автор:  Artur [ 20 мар 2015, 17:30 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Скандалы, интриги, расследования...

Автор:  Inspire [ 20 мар 2015, 17:31 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Добавил, но результата пока нету. Сейчас логи добавлю.

Автор:  stark [ 20 мар 2015, 17:36 ]
Заголовок сообщения:  Re: bitel.billing.server.util.exslt.Scripting

Inspire писал(а):
Кажется, я понял, в чем дело... в библиотеке скриптов в 6.1 ни одного скрипта... :D


о как :) .. Ты с этого надо было и начинать :).

Страница 1 из 3 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/