Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить содержание файл с URL вне приложения / 12 сообщений из 12, страница 1 из 1
13.09.2007, 16:47:40
    #34798422
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Задача следующая. Существует страничка, висящая на сервере основного приложения, в которой динамически генерируется fop разметка в зависимости от параметров запроса. В моем случае её эмулирует статический файл aav.xml. Мне нужно данную страничку получить и обработать. На моем тестовом сервере данный сервлет работает, но возникли проблемы с переносом на основной. Могу ли я каким либо образом получать доступ к ресурсу не по относительому url "/reports/aav.xml", а по абсолютному, вроде "http://host/app/reports/aav.xml"? Заранее большое спасибо.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
 import  java.io.*;
 import  javax.servlet.*;
 import  javax.servlet.http.*;
//JAXP
 import  javax.xml.transform.Transformer;
 import  javax.xml.transform.TransformerFactory;
 import  javax.xml.transform.Source;
 import  javax.xml.transform.Result;
 import  javax.xml.transform.stream.StreamSource;
 import  javax.xml.transform.sax.SAXResult;
// FOP
 import  org.apache.fop.apps.FOUserAgent;
 import  org.apache.fop.apps.Fop;
 import  org.apache.fop.apps.FOPException;
 import  org.apache.fop.apps.FopFactory;
 import  org.apache.fop.apps.MimeConstants;

 public   class  my_fo_rtf_url  extends  HttpServlet
{
       private  FopFactory fopFactory = FopFactory.newInstance();
       private  TransformerFactory tFactory = TransformerFactory.newInstance();
        
 public   void  service (HttpServletRequest request,
                   HttpServletResponse response)  throws  ServletException {
     try  {
       	ByteArrayOutputStream out =  new  ByteArrayOutputStream();	
        Fop fop = fopFactory.newFop(MimeConstants.MIME_RTF, out);
        Transformer transformer = tFactory.newTransformer();
        Result res =  new  SAXResult(fop.getDefaultHandler());
        InputStream in =  getServletContext().getResourceAsStream("/reports/aav.xml");
        Source src =  new  StreamSource(in);
        
        transformer.transform(src, res);
        response.setContentType("application/rtf;charset=Windows-1251");
		response.addHeader("Content-Disposition", "attachment; filename=output_rtf_default.rtf");
        response.setContentLength(out.size());
    
        response.getOutputStream().write(out.toByteArray());
        response.getOutputStream().flush();
    }  catch  (Exception ex) {
         throw   new  ServletException(ex);
    }
}
}
...
Рейтинг: 0 / 0
13.09.2007, 17:13:20
    #34798536
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Есть мысль сделать через URlConnection, но тогда нужно использовать для данного соединения сессию браузера, а как ее получить и приделать к этому методу я не знаю :(
...
Рейтинг: 0 / 0
13.09.2007, 17:18:15
    #34798563
м.б.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
только если так
Код: plaintext
InputStream stream =  new  URL("http://host/app/reports/aav.xml").openStream();
...
Рейтинг: 0 / 0
13.09.2007, 18:04:46
    #34798798
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Всплыла другая проблема. При создании соединения с помощью
Код: plaintext
URL("http://x.x.x.x/owaz/reports/PolContractpdf_aav.jsp")
создается новая сессия, в которой отсутсвуют требуемые параметры. Мне необходимо получить текущую сессию браузера и через нее соединиться. Я поковырялся в API ничего подходящего пока не нашел.
...
Рейтинг: 0 / 0
13.09.2007, 18:18:28
    #34798851
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Код: plaintext
URL("http://x.x.x.x/owaz/reports/PolContractpdf_aav.jsp;jsessionid="+session.getId())
...
Рейтинг: 0 / 0
13.09.2007, 18:38:14
    #34798907
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
К сожалению не помогает.
Соединение создается, но по прежнему я не получаю нужные данные.
Если я ввожу URL с файлом источником в строке браузера, то вижу мой xml файл в наилучшем виде.
Ecли я ввожу этот же url в
Код: plaintext
URL("http://*.jsp;jsessionid="+request.getSession().getId())
и обращаюсь к моему сервлету, то вижу только часть данных. Как решить это пока не понимаю. Получать все параметры реквеста и попробовать их к URLConnection добавить или можно как то через объект?
...
Рейтинг: 0 / 0
13.09.2007, 18:43:38
    #34798918
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
- естественно URL должен содержать все необходимые параметры запроса:
Код: plaintext
1.
"page.jsp;jsessionid="+session.getId()+"?"+request.getQueryString()
...
Рейтинг: 0 / 0
13.09.2007, 18:46:32
    #34798926
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Код: plaintext
InputStream in =  new  URL("url;jsessionid="+request.getRequestedSessionId())
также не помогло.
...
Рейтинг: 0 / 0
13.09.2007, 18:48:05
    #34798933
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Kachalov- естественно URL должен содержать все необходимые параметры запроса:
Код: plaintext
1.
"page.jsp;jsessionid="+session.getId()+"?"+request.getQueryString()


Спасибо, сейчас буду пробовать.
...
Рейтинг: 0 / 0
13.09.2007, 18:50:22
    #34798937
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
А request.getQueryString() сработает при методе POST?
...
Рейтинг: 0 / 0
13.09.2007, 18:54:09
    #34798949
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
- нет
...
Рейтинг: 0 / 0
13.09.2007, 19:03:37
    #34798975
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить содержание файл с URL вне приложения
Я посмотрел что на компьютере создаются cookies. Есть мысль использовать их для создания соединения. Но пока не нашел как.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить содержание файл с URL вне приложения / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]