powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить содержание файл с URL вне приложения
12 сообщений из 12, страница 1 из 1
Получить содержание файл с URL вне приложения
    #34798422
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача следующая. Существует страничка, висящая на сервере основного приложения, в которой динамически генерируется 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
Получить содержание файл с URL вне приложения
    #34798536
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть мысль сделать через URlConnection, но тогда нужно использовать для данного соединения сессию браузера, а как ее получить и приделать к этому методу я не знаю :(
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798563
м.б.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только если так
Код: plaintext
InputStream stream =  new  URL("http://host/app/reports/aav.xml").openStream();
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798798
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всплыла другая проблема. При создании соединения с помощью
Код: plaintext
URL("http://x.x.x.x/owaz/reports/PolContractpdf_aav.jsp")
создается новая сессия, в которой отсутсвуют требуемые параметры. Мне необходимо получить текущую сессию браузера и через нее соединиться. Я поковырялся в API ничего подходящего пока не нашел.
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798851
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
URL("http://x.x.x.x/owaz/reports/PolContractpdf_aav.jsp;jsessionid="+session.getId())
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798907
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению не помогает.
Соединение создается, но по прежнему я не получаю нужные данные.
Если я ввожу URL с файлом источником в строке браузера, то вижу мой xml файл в наилучшем виде.
Ecли я ввожу этот же url в
Код: plaintext
URL("http://*.jsp;jsessionid="+request.getSession().getId())
и обращаюсь к моему сервлету, то вижу только часть данных. Как решить это пока не понимаю. Получать все параметры реквеста и попробовать их к URLConnection добавить или можно как то через объект?
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798918
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- естественно URL должен содержать все необходимые параметры запроса:
Код: plaintext
1.
"page.jsp;jsessionid="+session.getId()+"?"+request.getQueryString()
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798926
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
InputStream in =  new  URL("url;jsessionid="+request.getRequestedSessionId())
также не помогло.
...
Рейтинг: 0 / 0
Получить содержание файл с URL вне приложения
    #34798933
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- естественно URL должен содержать все необходимые параметры запроса:
Код: plaintext
1.
"page.jsp;jsessionid="+session.getId()+"?"+request.getQueryString()


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


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