Сервер переехал на новый сайт http://www.oraclegis.com/blog. Здесь идет ретрансляция

вторник, 16 декабря 2008 г.

Две новые статьи

Дошли руки. Написал 2 давно задуманные статьи:

1. Об интеграции Mapviewer с MS Virtual Earth
2. О поддержке системы координат World mercator (54004) в Oracle Spatial


Читать далее...

FAQ по Oracle Mapviewer

Недавно компания Oracle опубликовала FAQ по Mapviewer. Его русская версия доступна здесь.


Читать далее...

суббота, 13 декабря 2008 г.

OdiInvokeWebService tool is not working properly when using Designer with Java 1.6

It is not possible to invoke a Web Service with the OdiInvokeWebService tool when using Designer with Java 1.6. Invoking an operation throws the following exception :

java.lang.AbstractMethodError:
org.apache.crimson.tree.XmlDocument.getXmlStandalone()Z
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(DOM2TO.jav a:373)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:127)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:94)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity (TransformerImpl.java:663)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)

и т.д.

Проблема решается установкой более ранней версии JDK (1.5) или upgradом на более новую версию ODI. Эта новая версия ODI либо 10.1.3.5, либо 11g :) А ее еще нет. По крайней мере я не нашел :))


Читать далее...

Отсутствует класс com.sunopsis.sdk.opentools.SnpsOpenToolAbstract

В Oracle Data integrator есть интересная возможность по расширую функциональности – OpenTool. Эта возможность позволяет на Java написать то, что еще не реализовано в ODI.

Достался этот функционал от старого доброго Sunopsis. Oracle потихоньку начал перекраивать функционал под свои нужды. Соответственно возникают коллизии. Вот на одну такую коллизию наткнулся. 

Я пытался запустить пример, поставляемый в дистрибутиве – SimpleMessageBox. Класс написан на старой версии Sunopsis и там же скомпилирован. В настоящий момент ряд классов переименованы – в частности такого класса как com.sunopsis.sdk.opentools.SnpsOpenToolAbstract не стало, а появился класс oracle.odi.sdk.opentools.OpenToolAbstract. Как результат – при попытке загрузить OpenTool из класса SimpleMessageBox получаем ошибку:

java.lang.NoClassDefFoundError: com/sunopsis/sdk/opentools/SnpsOpenToolAbstract
    Open Tool not acrivated. Your Open Tool references a class not found

Для того, чтобы решить проблему придется перекомпилировать класс SimpleMessageBox.

Для этого

1. Откроем файл $ODI_HOME/demo/plugins/src/com/myCompany/sunopsisOpenTools/SimpleMessageBox.java и делаем глобальную замену фразы "com.sunopsis.sdk.opentools" на фразу "oracle.odi.sdk.opentools". Кроме того, также глобальной заменой следует заменить "Snps" на "".

2. Компилируем класс SimpleMessageBox из каталога $ODI_HOME/demo/plugins/src/com/myCompany/sunopsisOpenTools/

/opt/jdk1.6.0_11/bin/javac –cp /u01/app/oracle/product/10.3.0.4/oracledi/lib/sunopsis.zip SimpleMessageBox.java

3. Копируем $ODI_HOME/demo/plugins/src/com/myCompany/sunopsisOpenTools/SimpleMessageBox.class в каталог $ODI_HOME/demo/plugins/bin/com/myCompany/sunopsisOpenTools/

Дальше можно делать по инструкции.


Читать далее...

среда, 3 декабря 2008 г.

Русский язык в параметрах JSP страниц (UTF-8, Windows-1251)

Борьба с детскими болезнями поддержки русского языка уже начинает надоедать. Связано это в первую очередь с исходной заточенностью многих технологий именно на ASCII символы, ну или, в крайнем случае, на западноевропейскую кодировку.

Очередная проблема с которой я столкнулся – это передача параметров на JSP страницу.

Начал я вот с такого куска кода JSP

<%@ page contentType="text/html;charset=UTF-8" %>
<% query2 = request.getParameter("query_1"); %>

<form action="jview1.jsp" name="jview" method="post">
query 2: <TEXTAREA style="font-size:28px;   font-family: arial, helvetica, sans-serif;" cols=40 name=query_2 rows=6><%=(query2!=null)?query2:""%></TEXTAREA>
</form>

Собственно, что может быть проще. Запостили страничку в UTF-8 с текстовым полем query_2, вытащили его из запроса и обратно затянули в это поле.

А вот и не просто. Вводим в поле текст следующего содержания

“select * from moscow where name='Город'”.

А в ответ получаем

“select * from moscow where name='Город'”.

Для решения этоq проблемы, в конце концов, пришел к вот такому коду (может не оптимальный и не универсальный, но в моем случае работает):

  String query1_temp = request.getParameter( "query_1" );
  query1 =query1_temp==null?null:new String(query1_temp.getBytes("ISO-8859-1"),response.getCharacterEncoding());

Если кто-то сделал по-другому – делитесь. :)


Читать далее...