Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с командной строкой в сервлете, работа с командной строкой в сервлете 
:(
    Опции темы
koroplysov
Дата 10.2.2011, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



Привет!
Вообщето нужно делать таблички в PDF. Делается легко в html(там предпросмотр на странице), далее хочу их конвертировать в pdf. В iText русский текст не понимает(чепуха остается), да и сразу в iText неохота повторно(после html) генерить таблицы. Найдета замечательная свободная библиотека jodconverter. На jave, с исходниками, конвертит html в pdf замечательно. Использовать внутри сервлета как библиотеку нельзя (для библиотеки нужно использовать Java 1.5, а веб-приложение использует не выше 1.4). Я хочу использовать jodconverter из командной строки. Так вот не получается то ли не пойму куда положить то ли как правильно вызвать. Строка: "java -jar jodconverter-cli-2.2.1.jar temp.html temp.pdf".
пример с блокнотом работает(запускается) из NetBeans+Tomcat, а на сервере с WebSphere не работает(блокнот не запускается а сервлет отрабатывает без ошибок)
Код

Runtime r = Runtime. getRuntime();
Process p = null;
String cmd[] = {"notepad.exe"};
p = r.exec(cmd);

Вопросы:
1. как использовать командную строку из сервлета(на WebSphere блокнот не запускается даже, по крайней мере не видно), куда будут сохраняться файлы и вообще можно такое?
2. знает ли кто как при конвертации в iText из html в pdf русский текст сохранить?

Спасибо за любую информацию!
PM MAIL   Вверх
Samotnik
Дата 11.2.2011, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Цитата(koroplysov @  10.2.2011,  20:15 Найти цитируемый пост)
а на сервере с WebSphere не работает(блокнот не запускается а сервлет отрабатывает без ошибок)

странно, у меня на tomcat Ваш блокнот запустился.
TestServlet .java
Код

package com.my.test;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       

    public TestServlet() {
        super();
      
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {            
            Runtime. getRuntime().exec("notepad.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


web.xml
Код

<?xml version="1.0" encoding="UTF-8" ?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">
  <display-name>PushServer</display-name> 

<servlet>
  <servlet-name>test</servlet-name> 
  <servlet-class>com.my.test.TestServlet</servlet-class> 
  </servlet>
 <servlet-mapping>
  <servlet-name>test</servlet-name> 
  <url-pattern>/test</url-pattern> 
  </servlet-mapping>

  </web-app>


запрос: http://localhost:8080/Test/test

Это сообщение отредактировал(а) Samotnik - 11.2.2011, 01:25
PM MAIL   Вверх
koroplysov
Дата 11.2.2011, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



Спасибо за ответ! В том то и дело, на Tomcat+NetBeans запускается, а на боевом сервере(WebSphere) не запускается, по крайней мере он(блокнот) не видим, хотя сервлет отрабатывает без ошибок. Что не так, не пойму. Уже проще некуда.
PM MAIL   Вверх
koroplysov
Дата 24.2.2011, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



И так, результат моих изысканий(напоминаю условия, разработка NetBeans+Tomcat+Java 1.4, работать должно на WebSphere):
работает преобразование html->pdf и очень качественно при условии если все теги закрываются(формат файла UTF-8 и в meta charset=UTF-8") и сервер опен офис  запущен "soffice -headless -accept="socket,port=2002;urp;"
Код

Process process=null;
process=Runtime.getRuntime().exec("java -jar C:\\jodconverter-core-3.0-beta-3\\lib\\jodconverter-core-3.0-beta-3.jar tmp.html tmp.pdf");

но: 
1. работает это дело асинхронно(а нужно отловить момент создания файла и при этом уложиться в Java 1.4)
2. сохраняет в нужную папку только в Tomcat, а на WebSphere не хочет в корень веб приложения(видимо там уже есть комплекс прав и которые нарушать не хочется)
3. очень надо быть внимательным при запуске, так как результат может отдать только после остановки сервера(иногда нормально работает иногда нет, так и не нащел связь, да и времени мало было)
4. очень критично к ошибкам при конвертации(потом может не запуститься на конвертацию и надо выгружать опенофис, перезапускать)

Мораль: буду напрямую через опенофис или просто строить в нем отчеты и экспортировать в pdf.
PM MAIL   Вверх
koroplysov
Дата 15.3.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



всетаки вебсфера не хочет работать нормально с командной строкой. в tomcat все нормально
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.