Категорія: Settings

 

Coldfusion 8 под CentOS 5

Чуть ранее я уже писал что Coldfusion 7 под Linux не может найти нужные ей libstdc. Как ни странно, Coldfusion 8 тоже болеет детскими болезнями и ищет libstdc++.so.5 при установленной 6 версии. Лечится несколько иначе чем с CFMX7, но тоже просто:

# yum install libstdc++.so.5

Это установит пакет совместимости compat-libstdc++-33

В /usr/lib появится еще одна версия libstdc++:

# ls | grep libstdc
libstdc++.so.5 -> libstdc++.so.5.0.7
libstdc++.so.5.0.7

Автор: Родион Быков | Опубліковано: 03.04.2009 о 12:44 | Категорії: Settings -

 

RDS - удобная штука

Еще с далеких времен в Coldfusion встроен RDS - Remote Development Services - служба с помощью которой можно удаленно управлять файлами на сервере где установлен Coldfusion. Если вы пользуетесь Dreamweaver, Flex Builder или Bolt, через RDS вы можете легко управлять файлами на сервере разработки, синхронизировать файлы удаленного сервера с локальными, просматривать структуру таблиц в источниках данных, выполнять запросы.

Часто RDS отключен при установке Coldfusion-сервера. Чтобы включить RDS уже на установленном сервере надо сделать так. В файле [cfroot]/wwwroot/WEB-INF/web.xml один из сервлетов и один из разделов servlet-mapping будут закомментарены, найти их можно по комментарию begin RDS,  и по имени сервлета RDSServlet. Раскомментарьте оба этих описания и перезапустите Coldfusion сервер. В Coldfusion Administrator в разделе Security->RDS установите пароль на вход (или логин-пароли если логинов несколько, только для Enterprise версии Coldfusion). Не рекомендуется включать RDS для production-серверов, т.к. RDS открывает большие возможности по управлению сервером.

Автор: Родион Быков | Опубліковано: 31.03.2009 о 22:03 | Категорії: Settings -

 

Null Pointers Are Another Name For Undefined Values

Недавно в сайтах на Coldfusion 8 стала появлятся такая вот непонятная ошибка

The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code.

Null Pointers are another name for undefined values.

Ошибка "лечилась" простой перезагрузкой вызываемой страницы (F5), казалось что это и не ошибка вовсе. Дебаггер не выводил ничего путного, строки, на которые указывала Coldfusion не содержали ничего близко похожего, и к тому же всегда разнились.

После гугления прояснилось. Все эти сайты были построены на MySQL 5. Дело было в настройке для MySQL датасорса - "Maintain Connections" - по-умолчанию установленной в true. Coldfusion пыталась не закрывать коннекшен, и вероятно, MySQL делала это в одностороннем порядке. При попытке соединится с базой, Coldfusion падала с такой неясной ошибкой.

Чтобы отключить эту опцию, в Coldfusion Administrator -> Datasources при редактировании источника данных нажмите кнопку Show Advanced Settings и снимите галочку "Maintain Connections".

Автор: Родион Быков | Опубліковано: 28.08.2008 о 08:05 | Категорії: MySQL - Settings -

 

Coldfusion 7 и недостающие libstdc++

При вызове веб-сервиса через <cfinvoke>, у Coldfusion 7 работающей под Linux, может случиться паника из-за отсутствующих (как ей кажется) библиотек libstdc++.

coldfusion.jsp.CompilationFailedException:
Errors reported by Java compiler
/opt/coldfusionmx7/runtime/bin/jikesw: error while loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory

Однако, причина лишь в том что библиотеки оказываются более новыми, чем Coldfusion их ожидает увидеть (особенно под новыми версиями Linux)

Решение очень простое (это сделано под CentOS 5, у вас может быть другой пакет)

# cd /usr/lib
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2

Просто "подменив" модуль, мы тыкаем Coldfusion носом в новую версию библиотек, которые она не хотела видеть.

Автор: Родион Быков | Опубліковано: 20.08.2008 о 11:02 | Категорії: Settings -

 

Проблема с добавлением datasource в Coldfusion 8

После установки Coldfusion 8 неожиданно обнаружилась проблема - при попытке создать datasource типа MS Access или ODBC - Coldfusion Administrator навечно подвисал. В Adobe Livedocs нашлось несколько путанное решение, я приведу его тут с поправками.


Читати далі...
Автор: Родион Быков | Опубліковано: 15.01.2008 о 08:02 | Категорії: Settings -

 

Подключение MySQL

Когда я начал работать с ColdFusion, меня честно говоря удивило, почему такая удобная штука не нашла широкого применения на постсоветском пространстве. Ну хорошо, nix-системы еще куда ни шло, но Windows... по моему CF явно удобнее ASP (прежде всего для изучения и работы) при той же функциональности. А дело было в том, что CF якобы не дружил с русским языком. Это мне показалось странно, CFMX7 работает на java машине, а значит должна быть поддержка юникода (хотя некоторые утверждали что проблемы с кодироваками именно из за java, но в самих то скриптах никаких проблем с кодировками нет, и это меня насторожило). Я копнул поглубже первых двух страниц гугла, и кое чего нашел, и сейчас постараюсь рассказать об этом более-менее доступным языком.

Итак, ColdFusion MX7 (в отличии от Beta 8) не имеет собственных коннекторов для связи с mySQL. Можно, конечно поставить ODBC коннектор отсюда , версии выше к сожалению нет, но более "старшие" версии базы с ним работать будут. Но тогда о юникоде можно забыть, а оно нам надо? =)

Поэтому лучше воспользоваться другим путем - создать датасорс через JDBC. Для этого идем в администрирование датасорсов, вбиваем имя, в выпадающем списке драйверов выбираем other.

 

Вот, в Windows этого уже вполне достаточно для работы.

Если сервер ColdFusion (или BlueDragon) развернут под Linux, то нужно, то JDBC URL должна выглядеть так jdbc:mysql://127.0.0.1:8500/test_database?useUnicode=true&characterEncoding=UTF-8

можно вынести параметры в Connection String.

Создаем таблицу в базе для проверки:

CREATE TABLE test_table (
test_field VARCHAR (255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
и скриптик index.cfm:
<cfquery name="test_query" datasource="test_mysql_datasource">
   SELECT * FROM test_table
</cfquery>
<cfdump var="#test_query#">

запускаем это все...

Собственно все, более подробно, со ссылками на механизм развертывания CF под Linux можно почитать тут.

В CFMX8 все будет еще проще, как было сказано, там есть свои коннекторы для mySQL и они прекрасно работают.

Автор: Владимир Каленюк | Опубліковано: 24.06.2007 о 07:05 | Категорії: Settings -