powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / хранение файлов
152 сообщений из 152, показаны все 7 страниц
хранение файлов
    #38868165
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть проект tomcat, jsp
проетирование под виндой, работа под debian
нужно сохранять файлы переданные с клиента
создал папку /сервер/pic/...
запускаю, war рзворачивается , всё работает, картинки сохраняются, отображаются
но если повторто запустить(после правки/добавления) - соответственно папка /сервер/pic/...будет пустая, хотя в базе имена файлов сохранены и вместо картинок фиг
и на рабочем сервере такая же фигня будет при апгрейте (если вручную эту папку не сохранить и после апгрейта не восстановить)
как можно обойти эту проблему?
...
Рейтинг: 0 / 0
хранение файлов
    #38868181
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякак можно обойти эту проблему? Как обычно .
...
Рейтинг: 0 / 0
хранение файлов
    #38868236
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвадякак можно обойти эту проблему? Как обычно .
там много букф, я, к сожалению, не владею англицким настолько хорошо, чтоб там найти нужное...
ткни на нужное место.
...
Рейтинг: 0 / 0
хранение файлов
    #38868647
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению я не смог там найти решени ....
...
Рейтинг: 0 / 0
хранение файлов
    #38868660
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

говорят, можно сохранять в $TOMCAT_HOME
...
Рейтинг: 0 / 0
хранение файлов
    #38868670
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос как?
...
Рейтинг: 0 / 0
хранение файлов
    #38868686
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранить можно где угодно. Главное, чтобы "где угодно" не попадало в контекст приложения.
Ещё можно развёртывать не war, а каталог - не по стандарту, но существенно сокращает время развёртывания и не удаляет то, что было записано внутри каталога приложения. Но и в этом случае оптимально выделять для хранения отдельный ресурс, т.к. пользовательские данные определённо не являются частью приложения.
Местоположение такого хранилища задаёт или параметр контекста или JNDI. В обоих случаях администратор сервера имеет возможность настройки хранилища адекватным образом.
...
Рейтинг: 0 / 0
хранение файлов
    #38868750
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявопрос как?

Вадя посмотри все переменные семейства System.properties. Там есть маршруты
к $home, $tmp, $java-home, $your_web_server_home и привязывайся к ним.
...
Рейтинг: 0 / 0
хранение файлов
    #38868753
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни к одному из этих каталогов нельзя привязывать хранилище файлов.
...
Рейтинг: 0 / 0
хранение файлов
    #38868759
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут ещё надо чтоб картинки было доступны для тега src
можно ли как-то сделать редирект в фильтре ?
типа вызов идет src="pic/preview/pic.jpg" , фильтруется pic/preview/ и редиректится на c:/тополя/ля/ля?
...
Рейтинг: 0 / 0
хранение файлов
    #38868761
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
загрузить и сохранить картинку можно куда угодно. как её от туда вытащить?
не gthtljdfnm же её в base64.
...
Рейтинг: 0 / 0
хранение файлов
    #38868782
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятипа вызов идет src="pic/preview/pic.jpg" , фильтруется pic/preview/ и редиректится на c:/тополя/ля/ля?"Во многобукв" доке на контексты есть многобукав про docBase, который может смотреть куда угодно.
...
Рейтинг: 0 / 0
хранение файлов
    #38868795
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвадятипа вызов идет src="pic/preview/pic.jpg" , фильтруется pic/preview/ и редиректится на c:/тополя/ля/ля?"Во многобукв" доке на контексты есть многобукав про docBase, который может смотреть куда угодно.

эти много букв я понял как это будет место расположения всего сервера, куда и будет рзвертыватьмя .war, затирая всё старое
...
Рейтинг: 0 / 0
хранение файлов
    #38868815
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяэти много букв я понял как это будет место расположения всего сервера, куда и будет рзвертыватьмя .war, затирая всё староеКроме собственно приложения можно определить кучу других контекстов. В том числе - для статических ресурсов, куда никакие war-ы развёртываться не будут.
...
Рейтинг: 0 / 0
хранение файлов
    #38868820
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКроме собственно приложения можно определить кучу других контекстов. В том числе - для статических ресурсов, куда никакие war-ы развёртываться не будут.
дай пример как это сделать.
и как на такой ресурс сослаться для src="......"
я не смог найти такого....
...
Рейтинг: 0 / 0
хранение файлов
    #38868826
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядай пример как это сделать Defining a context и как на такой ресурс сослаться для src="......""Для внешнего мира" имя ресурса определяется именем контекста:
Код: plaintext
  ${catalina.base}/webapps/ctx1/
даёт контекст, который "будет известен" как /ctx1. Как указать контейнеру, что статические ресурсы этого контекста находятся в другом месте - по ссылке выше.

P.S. Имхо, лучше уходить от свалки в webapps и приучиться размещать описатели контекстов там, куда указывает Host xmlBase .
Этот вариант не будет затирать настройки, сделанные администратором сервера, при развёртывании новой версии приложения. Но требует, чтобы администратор произвёл такую настройку при первоначальном развёртывании вашего приложения.
...
Рейтинг: 0 / 0
хранение файлов
    #38868838
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я это читал, и нашёл подобный 12083677
только конкретного примера применения нет.
...
Рейтинг: 0 / 0
хранение файлов
    #38869497
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up
есть предложения?
...
Рейтинг: 0 / 0
хранение файлов
    #38869532
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

посмотрите мою тему http://www.sql.ru/forum/1137931/bezopasnost-staticheskih-falov?mid=17205297#17205297
у меня похожая задача
...
Рейтинг: 0 / 0
хранение файлов
    #38869589
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olzhasвадя,

посмотрите мою тему http://www.sql.ru/forum/1137931/bezopasnost-staticheskih-falov?mid=17205297#17205297
у меня похожая задача

оч хорошо, проверю...

если не секрет - можешь выслать твой вариант применения фильтра?
...
Рейтинг: 0 / 0
хранение файлов
    #38869652
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятолько конкретного примера применения нет.Задаём параметр контекста и вычитываем его в init() сервлета.
Если не выносим описатели за пределы webapps, то примерно так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<!-- META-INF/context.xml сервлета -->
<Context>
  <Parameter name="имяПараметра" value="Путь/Хранилище" />
</Context>

<!-- pic/META-INF/context.xml,  указываем то же самое местоположение -->
<Context docBase="Путь/Хранилище" />

Ответственность за то, чтобы в двух местах были указаны одинаковые значения - лежит на администраторе сервера.
В частном, но распространённом случае можно задать местоположение при помощи свойства:
Код: plaintext
  java -DимяСвойства="Путь/Хранилище" прочие аргументы
и тогда будет:
Код: xml
1.
2.
3.
<Parameter name="имяПараметра" value="${имяСвойства}" />
<!-- и, аналогично -->
<Context docBase="${имяСвойства}" />

Имена параметра и свойства никак не связаны между собой - могут быть одинаковы, могут быть разными.
...
Рейтинг: 0 / 0
хранение файлов
    #38869685
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли не выносим описатели за пределы webapps, то примерно так:
проблема именно в выносе за webapps
в пределах webapps я моггу сделать редирект, это проще.

2olzhas
что-то у меня не получается...
...
Рейтинг: 0 / 0
хранение файлов
    #38869706
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня проект Netbeans
...
Рейтинг: 0 / 0
хранение файлов
    #38869746
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпроблема именно в выносе за webappsОписатель (deployment descriptor) сильно не эквивалентен значению одного из параметров этого описателя (docBase).
За пределами webapps (независимо) может находиться любой из них.
...
Рейтинг: 0 / 0
хранение файлов
    #38869818
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
от прочитанного я несколько туплю...
у меня есть только один context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/mo" />

более подробнее можно...
...
Рейтинг: 0 / 0
хранение файлов
    #38869939
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продублирую решение - для java8

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8"?>
<Context  path="/mo"  >
   
    <Resources>
        <PostResources className="org.apache.catalina.webresources.DirResourceSet"
                   base="c:\Catalina\mo\full" webAppMount="/dataFiles" />
    </Resources>
  
</Context>




http://mikusa.blogspot.ru/2014/07/tips-on-migrating-to-tomat-8-resources.html
...
Рейтинг: 0 / 0
хранение файлов
    #38870010
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как получить эти значения в коде?
...
Рейтинг: 0 / 0
хранение файлов
    #38870025
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
у меня 2 сервера:
Основной - здесь генерируются страницы, работа с БД и т.д.
Сервер контента - здесь храниться документы, который заливает пользователь.

Что бы залить контент основной сервер генерирует ссылку на сервер контента http://servercontent/MyApp/upload?docId=12344&expiredTime=12341234&key=q1234dqwe3214

docId - ИД документа который заливает
expiredTime - время (в миллисекундах Date.getTime()) до которого актуальна ссылка (я ставлю +1 день new Date().getTime() + 1000*60*60*24),
key - проверочный ключ это Md5 от docId + expiredTime + соль. О соли знают только сервера.

сервлет upload проверяет ключ и сохраняет файл в файловую систему в D:\myFiles


что бы получить контент основной сервер также генерирует ссылку http://servercontent/MyApp/content/fileName.doc?expiredTime=12341234&key=q1234dqwe3214
смысл параметров такой же как и у загрузки.

Сервлета для выгрузки у нас нет, ссылка идет на статический ресурс. Для проверки доступа используется фильтр.

Код: java
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.
@WebFilter(filterName="DownloadFilter", urlPatterns="/content/*")
public class DownloadFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;

        try {
            String time = servletRequest.getParameter("expiredTime");
            String key = servletRequest.getParameter("key");

            String uri = request.getRequestURI();
            String[] items = uri.split("/");
            String fileName = URLDecoder.decode(items[items.length - 1],"UTF-8");
            if (!FileStoreUtils.validateDownload(fileName,time,key)) {
                throw new IllegalAccessException("key is invalid");
            }

            filterChain.doFilter(request,response);
        } catch (IllegalArgumentException e) {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        } catch (IllegalAccessException e) {
            response.setStatus(HttpServletResponse.SC_FORBIDDEN);
        } catch (Exception e) {
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        }
    }
 ...
}



по ссылке http://servercontent/MyApp/content/fileName.doc
сервер будет искать файл в {tomcat_home}\webapp\MyApp\content\filename.doc, хотя файл у нас лежит в D:\myFiles\fileName.doc
Для того что бы он искал в D:/myFiles/ нужно в приложение добавить context.xml в webapp/META-INF/context.xml такого содержания

Код: xml
1.
2.
3.
4.
<?xml version="1.0" encoding="UTF-8"?>
<Context aliases="/content=D:\myFiles\">

</Context>



aliases="/content=D:\myFiles\" - вот эта строчка говорит что при URL по пути /content ( http://servercontent/MyApp/content/* ) искать файлы в D:\myFiles\

я из примеров много что вырезал, поэтому они не совсем валидные. но смысл думаю понятен.
...
Рейтинг: 0 / 0
хранение файлов
    #38870027
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olzhas,

у меня tomcat7, для 8 версии не знаю как настраивать.
...
Рейтинг: 0 / 0
хранение файлов
    #38870059
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olzhas
спасибо, идея понятна, достаточно интересная, "кроссдоменная передача данных" :)

как это реализовать на java8 я привел выше.
у меня теперь другая проблема - как прочитать инфу из context.xml...
чтоб записать файлы в нужное место.
...
Рейтинг: 0 / 0
хранение файлов
    #38870101
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

Я не стал заморачиваться на эту тему и храню эту информацию прямо в классе загрузки. Да, не хорошо, работает ну и ладно.
...
Рейтинг: 0 / 0
хранение файлов
    #38870242
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поднимаю ...
кто может помочь?
...
Рейтинг: 0 / 0
хранение файлов
    #38870265
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Зачем вам читать что-то из context.xml?
Если нужно узнать реальный путь директории, на которую вы ссылаетесь через alias-ы и т.д., то для примера конфигов, что привёл olzhas, достаточно в init() сервлета/фильтра например сделать
Код: java
1.
String realPath = config.getServletContext().getRealPath("/content/");



Оно вернёт строку "D:\myFiles\".
...
Рейтинг: 0 / 0
хранение файлов
    #38870286
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сделано так:
создал папку на сервере в корне, которую никто не трогает.
Заливаю туда файлы и одновременно пишу в базу название файла, разные другие параметры (в частности уровень доступа к файлу на уровне приложения, типа 1,2,3 уровни доступа), так же прописываю путь.
В зависимости от места загрузки файла в приложении, то есть в пользовательском интерфейсе, в путь добавляет что-то типа айдишников того или иного, к чему привязывается файл.
То есть, например, клиенту с айди 223 "прикрепляется" файл файл.doc.
получаем путь "/папка_в_корне/contractors/223/файл.doc"
В базу пишется название, этот путь что выше, ну и уровень доступа пользователя, к примеру, файлы с уровнем 3, не показываются в приложении в интерфейсе пользователю с уровнем доступа 2 и ниже. Ну это так - лирика :)
При выборе какого-либо клиента, в другой таблице формируется список доступных файлов на сервере, список берется из базы.
Потом выбираем какой-либо пункт в списке файлов и качаем его, путь уже известен.
В webapps ничего не кладу.
...
Рейтинг: 0 / 0
хранение файлов
    #38870288
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А да, если имена файлов совпадают, имя файла меняется, добавляется 1,2,3 и т.д.
...
Рейтинг: 0 / 0
хранение файлов
    #38870409
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim666вадя,

Зачем вам читать что-то из context.xml?
Если нужно узнать реальный путь директории, на которую вы ссылаетесь через alias-ы и т.д., то для примера конфигов, что привёл olzhas, достаточно в init() сервлета/фильтра например сделать
Код: java
1.
String realPath = config.getServletContext().getRealPath("/content/");



Оно вернёт строку "D:\myFiles\".
то что нужно ! Спасибо!

2Nixic
ну для несовпадения имен у меня генерится GUI :)
насчет разграничения прав - тут вариантов море.
в моём случае это всё нужно чтоб не потереть файлы при деплое.
...
Рейтинг: 0 / 0
хранение файлов
    #38870484
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь вопрос с другой стороны - а как задать реальны путь, ведь в разных осях от разный...
не только по содержанию, но и по форме.
а если задать оба вида - то приложение просто не диплоится...
...
Рейтинг: 0 / 0
хранение файлов
    #38870520
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяв моём случае это всё нужно чтоб не потереть файлы при деплое.
ты уверен, что все не теряют файлы только по тому, что пишут в корень С: или D:?
...
Рейтинг: 0 / 0
хранение файлов
    #38870550
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяв моём случае это всё нужно чтоб не потереть файлы при деплое.
ты уверен, что все не теряют файлы только по тому, что пишут в корень С: или D:?
не понял фразу...
как понял - мне по барабну куда будет писаться,главное чтоб было не в webapps, абсолютные пути можно прописать хоть в web.xml хоть в singleton.
проблема счас в том что в окнах и никсах по разному
...
Рейтинг: 0 / 0
хранение файлов
    #38870556
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот http://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/webresources/DirResourceSet.html
DirResourceSet

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public DirResourceSet(WebResourceRoot root,
                  String webAppMount,
                  String base,
                  String internalPath)

    Creates a new WebResourceSet based on a directory.

    Parameters:
        root - The WebResourceRoot this new WebResourceSet will be added to.
        webAppMount - The path within the web application at which this WebResourceSet will be mounted. For example, to add a directory of JARs to a web application, the directory would be mounted at "/WEB-INF/lib/"
        base - The absolute path to the directory on the file system from which the resources will be served.
        internalPath - The path within this new WebResourceSet where resources will be served from.

только что-то не могу понять
...
Рейтинг: 0 / 0
хранение файлов
    #38870595
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякак понял - мне по барабну куда будет писаться,главное чтоб было не в webapps
на папку выше по относительному не пробовал?
Типа
../
?
...
Рейтинг: 0 / 0
хранение файлов
    #38870600
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяабсолютные пути можно прописать хоть в web.xml
даже винда не удаляет все подряд файлы при деинсталляции.
Вот, у меня и сомнения, что у тебя ресурсы удаляются. И то что нужны абсолютные пути прямо из приложения.
_В крайнем случае_ настройщик - админ пишет абсолютный путь в том формате, который нужен серверу.
так \\ или так //
Не понял твоей проблемы.
...
Рейтинг: 0 / 0
хранение файлов
    #38870602
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадякак понял - мне по барабну куда будет писаться,главное чтоб было не в webapps
на папку выше по относительному не пробовал?
Типа
../
?
не пробовал, т.к. надо чтоб и возможность было куда угодно.
в том числе и на другой диск.

как задать WebResourceRoot root?
...
Рейтинг: 0 / 0
хранение файлов
    #38870603
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяв том числе и на другой диск.
а на такой:
\\шара\моя папка
?
...
Рейтинг: 0 / 0
хранение файлов
    #38870606
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с вас худею ...
Проблема, которая решается созданием двух файлов, в которые надо прописать две строчки и написанием человеческого init() (всё-равно нужен) решается чтением черезанусных решений с разных форумов.
Я бы понял пре/постресурсы tomcat8, если бы у меня было активное хранилище и "архивные разделы" из которых файлы "только достаются" и, может быть, удаляются, но если всё, что требуется - изменить docBase контекста?.. Зачем???
...
Рейтинг: 0 / 0
хранение файлов
    #38870607
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123а на такой:
\\шара\моя папка
?На общих основаниях: будет у процесса JVM Tomcat-а доступ к ресурсам - можно, нет - обломайтесь.
...
Рейтинг: 0 / 0
хранение файлов
    #38870624
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЯ с вас худею ...
Проблема, которая решается созданием двух файлов, в которые надо прописать две строчки и написанием человеческого init() (всё-равно нужен) решается чтением черезанусных решений с разных форумов.
Я бы понял пре/постресурсы tomcat8, если бы у меня было активное хранилище и "архивные разделы" из которых файлы "только достаются" и, может быть, удаляются, но если всё, что требуется - изменить docBase контекста?.. Зачем???
тут несколько сторон
-изучить новое
-вполе може быть что и внешние ресурсы будут...
-лень изменить docBase, т.к. приходится часто выкладывать на линукс и править каждый раз docBase....
да и забыть можно про исправление , а потом чеши репу, почему не деплоится...
а при сопровождении и подавно...
а так прописал один раз путь для окон и для линукса и пусть сам пишет куда надо.
...
Рейтинг: 0 / 0
хранение файлов
    #38870634
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяизучить новое
Просто твой вопрос относится к администрированию, а не программированию.
Это как в гинекологию уйти)).
Т.к. деплой на линукс и винду, всё рано разные вещи.
От ручной (или через админку) правки конфига всё рано не уйти.
IMHO
...
Рейтинг: 0 / 0
хранение файлов
    #38870653
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяизучить новое
Просто твой вопрос относится к администрированию, а не программированию.
Это как в гинекологию уйти)).
Т.к. деплой на линукс и винду, всё рано разные вещи.
От ручной (или через админку) правки конфига всё рано не уйти.
IMHO
ну почему? разработка под окнами в netbeans нажал кнопку - развернулось атоматом и war готов
скопировал war на линукс перезапустил томкат (а то и автоматом будет деплоится)
можно даже автоматзировать и одной кнопкой из netbeans деплоить в линукс.
так что правок не требуется.
...
Рейтинг: 0 / 0
хранение файлов
    #38870660
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятак что правок не требуется.
ты щас доказал, что абсолютные пути не нужны?
Перечитай Basil A. Sidorov
...
Рейтинг: 0 / 0
хранение файлов
    #38870662
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, админы - это очень коварные черти. Они завсегда нам разрабам клинья вбивают

А если серъезно - то не ленись. Сделай одно property в проекте. Дай возможность его
корректировать админу и спи спокойно. У админа есть OVER 1000 оснований чтобы
направлять твой хлам в отдельную папку для бэкапов и прочих технических моментов
которые ты даже не представляешь.
...
Рейтинг: 0 / 0
хранение файлов
    #38870667
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадятак что правок не требуется.
ты щас доказал, что абсолютные пути не нужны?
Перечитай Basil A. Sidorov

абсолютные пути нужны!
при запуске прложения, читается "os.name" и в зависимости от значения должен подставиться путь либо для окон, либо для линукса.
их можно зашить в код, либо в web.xml (это по вкусу)
...
Рейтинг: 0 / 0
хранение файлов
    #38870669
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonвадя, админы - это очень коварные черти. Они завсегда нам разрабам клинья вбивают

А если серъезно - то не ленись. Сделай одно property в проекте. Дай возможность его
корректировать админу и спи спокойно. У админа есть OVER 1000 оснований чтобы
направлять твой хлам в отдельную папку для бэкапов и прочих технических моментов
которые ты даже не представляешь.
а причем здесь админы? я сам здесь един во всех ипостасях :) о себе забочусь :)
...
Рейтинг: 0 / 0
хранение файлов
    #38870691
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут
http://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/webresources/package-summary.html
вроде всё написано...
только я не могу понять как это можно применить, подскжите как этим можно воспользоваться
плизззз
...
Рейтинг: 0 / 0
хранение файлов
    #38870694
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя-лень изменить docBase, т.к. приходится часто выкладывать на линукс и править каждый раз docBase....Вот поэтому надо выносить описатели развёртывания за пределы webapps и, возможно, за пределы catalina.base.
В этом случае админ разово напишет server.xml и описатели контекстов с учётом всех местных надобностей и может не опасаться, что при очередном обновлении пойдёт прахом всё нажитое непосильным трудом.
...
Рейтинг: 0 / 0
хранение файлов
    #38870718
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвадя-лень изменить docBase, т.к. приходится часто выкладывать на линукс и править каждый раз docBase....Вот поэтому надо выносить описатели развёртывания за пределы webapps и, возможно, за пределы catalina.base.
В этом случае админ разово напишет server.xml и описатели контекстов с учётом всех местных надобностей и может не опасаться, что при очередном обновлении пойдёт прахом всё нажитое непосильным трудом.
значит надо ещё где-то держать описатели того что и где находится и чтоб админ это помнил, и при увольнении передал следующему...да и прогер должен это помнить и следующему незабыть передать...
а так - один наказ беречь одну папку и всё, даже бэкап базы в неё можно делать из приложения...
и восстановление простое ...
и прогеру ничего не надо менять чтоб заработало - проект развернул всё работает
файлов нет по абсолютной ссылке - в исключении -небольшое напоминание...
а если один забыл, другой не вспомнил, где надо править и всё вроде есть- а не пашет..
...
Рейтинг: 0 / 0
хранение файлов
    #38870727
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ этом случае админ разово напишет server.xml и описатели контекстов с учётом всех местных надобностей и может не опасаться, что при очередном обновлении пойдёт прахом всё нажитое непосильным трудом.
да ещё этому админу надо втюхать что и как надо прописать... а они умные лучше прогера знают...
мне в этом плане лучше - я сам админ этого сервера.
мне проще один раз разобраться и потом не вспоминать, что и где разное , всё будет в одном проекте, у меня .
кнопка в ide и war деплоится на сервере.
ну а поднять сервер с 0 стандартно, любой справится
исходники отдельно, бэкап отдельно - залить по новой как два пальца
...
Рейтинг: 0 / 0
хранение файлов
    #38870729
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВот поэтому надо выносить описатели развёртывания за пределы webapps и, возможно, за пределы catalina.base.
и это надо чтоб работало и у разработчика и у заказчика.
опять таки должны быть ссылки на разные места...
ссылка на описатели в которых ссылки на данные....
...
Рейтинг: 0 / 0
хранение файлов
    #38870730
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадязначит надо ещё где-то держать описатели того что и где находится и чтоб админ это помнил, и при увольнении передал следующему...да и прогер должен это помнить и следующему незабыть передать...Сразу видно, что нифига вы не админили и доку не читаете
Описатели развёртывания, если таковые имеются, читаются из xmlBase/контекст.xml Host-блока конфигурации сервера.
По умолчанию xmlBase "смотрит" в ${catalina.base}/conf/движок/хост.
Если описатели развёртывания в xmlBase отсутствуют, то работает автоматическое развёртывание на основании структуры каталогов из webApps всё того же Host-блока. В этом случае параметры развёртывания берутся из META-INF/context.xml, если таковой присутствует и содержит нечто разумное.
Это достаточно компактно и обозримо, чтобы не потеряться и не заблудиться.
Это также позволяет извращаться, но поскольку вся жизнь сисадмина - в исходных текстах, то всегда можно сломать то, что делал другой человек.
...
Рейтинг: 0 / 0
хранение файлов
    #38870737
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonадмины - это очень коварные черти
так и есть - они падлы такие
...
Рейтинг: 0 / 0
хранение файлов
    #38870741
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это фсё философия и её надо обсуждать за бутылочкой хорошего коньяка....
тут задача чисто для прогеров.
разобраться в коде мудрых людей.
вот этого у меня и не получается . обвинять их что у них плохое описание - наглости не хватает.
а с другой стороны - если б было всё доходчиво, мне б подсказали б давно...
и опять получается философия.....
отложим её в сторону - помоги разобраться, у тебя знаний всяко больше.
...
Рейтинг: 0 / 0
хранение файлов
    #38870744
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174так и есть - они падлы такиеРазработчику известна программа, но неизвестно окружение, админу - наоборот.
Разные начальные условия, разные цели и методы.
Примите это различие к данность.
...
Рейтинг: 0 / 0
хранение файлов
    #38870751
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дак я и есть админ. пробовал предыдущий проект передать сисадминам, пока работало всё - сменился не один админ, и последнй был удивлен, что какой-то сервак на виртуалке пахал тихо и не заметно. что там у него и где он и понятия не имел...и ваще он про java только слышал...а уж описатели - ну уж только за отдельные деньги... приличные.
так что я луше сам. а для меня чем меньше исправлени в разных описателях - тем лучше
...
Рейтинг: 0 / 0
хранение файлов
    #38870756
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ведь если ораклоиды сделали - должно же это работать..... я так думаю
тут я знаю куча умны спецов тусуется
на слабо брать не хочу. но о помощи прошу
...
Рейтинг: 0 / 0
хранение файлов
    #38870785
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяведь если ораклоиды сделали
они сделали так:
- первый запуск на глассфише обоих war
- апп лезет в конфиг и видит что пустой
- кажет HTML с текстом "нет конфига по пути...."
- либо руками туда кинуть, либо запустить jar myJar
- она задаст пару вопросов и создаст конфиг.
Один из вопросов - базовый абсолютный путь к ресурсам статики.
...
Рейтинг: 0 / 0
хранение файлов
    #38870790
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня томкат...
...
Рейтинг: 0 / 0
хранение файлов
    #38870792
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут 17212868 ,
если я правильно понял
нужно здать root - The WebResourceRoot this new WebResourceSet will be added to.
а как это сделать...
...
Рейтинг: 0 / 0
хранение файлов
    #38870822
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяу меня томкат...
етить...
То ты меняешь хосты и операционки как перчатки, то ты привязался к томкату.
Можно подумать, Оракл на томкат бы сделал по другому).
...
Рейтинг: 0 / 0
хранение файлов
    #38870830
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю так
Код: java
1.
2.
WebResourceRoot root = new StandardRoot();
DirResourceSet drs = new DirResourceSet(root, "/dataFiles", "c:\\Catalina\\mo\\full", "/");



получаю java.lang.NullPointerException на второй строке
что правильно
Creates a new standard implementation of WebResourceRoot. A no argument constructor is required for this to work with the digester. setContext(Context) must be called before this component is initialized.
либо должно быть так
StandardRoot(Context context)

не могу понять как с этим Context context разобраться
...
Рейтинг: 0 / 0
хранение файлов
    #38871278
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядак я и есть админ.
Что-ж ты, злобный буратино сразу не сказал что ты админ?
...
Рейтинг: 0 / 0
хранение файлов
    #38871346
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonвадядак я и есть админ.
Что-ж ты, злобный буратино сразу не сказал что ты админ?
да вроде несколько раз даже...
автор- первый запуск на глассфише обоих war - запуск чего?
- апп лезет в конфиг и видит что пустой
- кажет HTML с текстом "нет конфига по пути...."
- либо руками туда кинуть, либо запустить jar myJar -- это что myJar?
- она задаст пару вопросов и создаст конфиг.
Один из вопросов - базовый абсолютный путь к ресурсам статики.
...
Рейтинг: 0 / 0
хранение файлов
    #38871386
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
авторOracle REST Data Services Developer Guide
i.war (статика)
ords.war

1. Например, лох не читал документацию и сделал деплой war без настройки. Потом сразу вызвал по http
2.
- вариант автоконфига от запуска sql скрипта
Код: java
1.
@apex_epg_config.sql D:\app\product\11.2.0\dbhome_2


в конце путь к статике
...
либо от jar
Код: java
1.
java -jar ords.war


либо
java -jar apex.war
...
Рейтинг: 0 / 0
хранение файлов
    #38871401
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в обоих случаях открывается чёрное окно и задаются вопросы для тех "админов", кто не любит XML.
А 2 варника работаю совместно.
...
Рейтинг: 0 / 0
хранение файлов
    #38871456
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е.
надо сначало выполнить это
https://docs.oracle.com/cd/E37099_01/doc.20/e25066/config.htm#AELIG7074
...
Рейтинг: 0 / 0
хранение файлов
    #38871528
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадят.е.
надо сначало выполнить это
https://docs.oracle.com/cd/E37099_01/doc.20/e25066/config.htm#AELIG7074
ну, там слишком много всяких настроек.
Я написал минимум шагов для запуска.
Например без всякого маппинга урлов и т.д.
1. @apex_epg_config.sql D:\app\product\11.2.0\dbhome_2
скрипт пропишет где ресурсы css\img\... задав пять вопросов.
всё. Можно вызывать приложение-war
...
Рейтинг: 0 / 0
хранение файлов
    #38871560
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но скачать ничего нельзя
и там http://tomcat.apache.org/tomcat-8.0-doc/api/index.html?overview-summary.html
ничего не сказано про это
https://docs.oracle.com/cd/E37099_01/doc.20/e25066/config.htm#AELIG7074

в API я пока не могу разобраться с Context context.
http://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/Context.html
...
Рейтинг: 0 / 0
хранение файлов
    #38871561
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяда вроде несколько раз даже...

У тебя - нос растёт.
...
Рейтинг: 0 / 0
хранение файлов
    #38871711
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяв API я пока не могу разобраться с Context contextВы постоянно читаете не то. "API Context" существует для того, чтобы программно сконфигурировать сервер.
Всё, что вам действительно нужно - ознакомится с разделом Configuration .
...
Рейтинг: 0 / 0
хранение файлов
    #38871739
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы постоянно читаете не то. "API Context" существует для того, чтобы программно сконфигурировать сервер.
Всё, что вам действительно нужно - ознакомится с разделом Configuration.

то что я там прочитал - я смог сделать следующее
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="UTF-8"?>
<Context  path="/mo"  >
   
    <Resources className="org.apache.catalina.webresources.StandardRoot">
        <PostResources className="org.apache.catalina.webresources.DirResourceSet"
                       base="c:\Catalina\mo\full"
                       webAppMount="/dataFiles" />
    </Resources>
  
</Context>


это работает.
но мне надо действительно программно переконфигурировать.
мне надо программно менять параметр base в завсимости от того, под какой осью приложение запущено.
конечно можно сделать так
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<Context  path="/mo"  >
   
    <Resources className="org.apache.catalina.webresources.StandardRoot">
        <PostResources className="org.apache.catalina.webresources.DirResourceSet"
                       base="c:\Catalina\mo\full"
                       webAppMount="/dataFiles" />
<!--        
        <PostResources className="org.apache.catalina.webresources.DirResourceSet"
                       base="/user/local" 
                       webAppMount="/dataFiles1" internalPath="/" />
-->
    </Resources>
  
</Context>


и в ручную коментировать/раскоментировать, но это как-то не серьёзно, ведь определить ось не проблема
...
Рейтинг: 0 / 0
хранение файлов
    #38871884
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
вот же етить проблема-то а?

Если ты можешь определить ось, ну дык и сделай ПРАВИЛО, что внешний ресурс(твой каталог с файлами) создаётся в определённой папке к которой усер из под которого запускается котяра имеет доступ. Имя этой папки стандартизовано для приложения и оси и есть в описании по развёртыванию для злобных админов . При запуске приложения проверяется наличие внешнего ресурса в стандартизованном каталоге (имя внешнего ресурса хранится в конфиге) - нет его - создаётся и всё. При передеплое нифига не надо менять в конфигах, стандартизованный каталог создаётся один раз при первоначальной настройке.
...
Рейтинг: 0 / 0
хранение файлов
    #38871908
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovвадя,
вот же етить проблема-то а?

Если ты можешь определить ось, ну дык и сделай ПРАВИЛО, что внешний ресурс(твой каталог с файлами) создаётся в определённой папке к которой усер из под которого запускается котяра имеет доступ. Имя этой папки стандартизовано для приложения и оси и есть в описании по развёртыванию для злобных админов . При запуске приложения проверяется наличие внешнего ресурса в стандартизованном каталоге (имя внешнего ресурса хранится в конфиге) - нет его - создаётся и всё. При передеплое нифига не надо менять в конфигах, стандартизованный каталог создаётся один раз при первоначальной настройке.

а ты обратил внимание почему одна часть закоментирована?
если раскоментировать- то всё было б по твоей логике - определил ось и выбрал нужный webAppMount
но проблема в том , что если раскоментировать приложение вылетает потому как не может найти того что не понимает ось. и вылетает ещё не этапе запуска....
я могу прописать любой путь для сохранения файлов в зависимости от оси и сохранять туда файлы из кода.
но для отображения на странице в теге src =" " путь должен быть внутренним для сервера.
...
Рейтинг: 0 / 0
хранение файлов
    #38871911
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Вот исчё может натолкнёт на мыслю, (в продолжение моей ):

Apache Tomcat 8 Configuration Reference
Код: plaintext
1.
2.
3.
4.
Attribute	Description
base	
Identifies where the resources to be used are located. This attribute is required by the org.apache.catalina.WebResourceSet
implementations provided by Tomcat and should specify the absolute path to the file,  directory  or JAR where the resources are located.
 Custom implementations may not require it. 

Таким образом создаёте свою реализацию org.apache.catalina.WebResourceSet на основании
Код: plaintext
org.apache.catalina.webresources.DirResourceSet
и в ней уже используете стандартизованный в зависимости от ОС путь к внешнему ресурсу. Правда при этом Вы становитесь заложником котяры ...
...
Рейтинг: 0 / 0
хранение файлов
    #38871931
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такой код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
Tomcat tomcat = new Tomcat();
        tomcat.setPort(8080);
        String webappDirLocation = "/C:\\Catalina\\conf\\Catalina\\localhost";
        StandardContext ctx = (StandardContext) tomcat.addWebapp(webappDirLocation, "mo");

        WebResourceRoot resources = new StandardRoot(ctx);
        resources.addPreResources(new DirResourceSet(resources, "/dataFiles", "c:\\Catalina\\mo\\full", "/"));
        ctx.setResources(resources);


он компилется, работает(т.е. не выкидыват ошибок), но нужного результата нет.
по логиге он должен прочитать файл context.xml ? и получить из него PostResources.
видимо я запутался с указанием путей..
у мемя
C:\Catalina - базовая папка Сatalina
C:\Catalina\conf\Catalina\localhost - папка с файлами mo.xml, ROOT.xml, manager.xml
C:\mo\build\web - в эту папку Netbeans разворачивает приложение.
что надо правильнь указать
...
Рейтинг: 0 / 0
хранение файлов
    #38871941
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Что этот код делает?
...
Рейтинг: 0 / 0
хранение файлов
    #38871950
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovвадя,

Вот исчё может натолкнёт на мыслю, (в продолжение моей ):

Apache Tomcat 8 Configuration Reference
Код: plaintext
1.
2.
3.
4.
Attribute	Description
base	
Identifies where the resources to be used are located. This attribute is required by the org.apache.catalina.WebResourceSet
implementations provided by Tomcat and should specify the absolute path to the file,  directory  or JAR where the resources are located.
 Custom implementations may not require it. 

Таким образом создаёте свою реализацию org.apache.catalina.WebResourceSet на основании
Код: plaintext
org.apache.catalina.webresources.DirResourceSet
и в ней уже используете стандартизованный в зависимости от ОС путь к внешнему ресурсу. Правда при этом Вы становитесь заложником котяры ...

вот это я и хочу добиться, но не выходиттт
ну а котяра устраивает, в этом ничего страшного не вижу....
...
Рейтинг: 0 / 0
хранение файлов
    #38871951
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovвадя,
Что этот код делает?
по моему мнению должен прочитать, получить информацию о текушем приложении как минимум.
внести коррективы как максимум

а в реале код ничего не делает, смотрю в дебагере по шагам состояние почти всех использованных объектов - пусто.
только baseDir - c:\\Catalina и namingContextName = /Catalina/localhost/mo
...
Рейтинг: 0 / 0
хранение файлов
    #38871957
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяну а котяра устраивает, в этом ничего страшного не вижу....
а почему тогда при установки котяры 1 раз на 2 разных хоста (т.е. 2 раза) не указать руками там нужный путь?
На деплой это не будет влиять.
Чисто спортивный интерес что-ли?
...
Рейтинг: 0 / 0
хранение файлов
    #38871964
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора почему тогда при установки котяры 1 раз на 2 разных хоста (т.е. 2 раза) не указать руками там нужный путь?
На деплой это не будет влиять.
Чисто спортивный интерес что-ли?

не понял... там , это где?
при установки котяры в разных осях и будут организованы папки.
...
Рейтинг: 0 / 0
хранение файлов
    #38871978
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтора почему тогда при установки котяры 1 раз на 2 разных хоста (т.е. 2 раза) не указать руками там нужный путь?
На деплой это не будет влиять.
Чисто спортивный интерес что-ли?

не понял... там , это где?
при установки котяры в разных осях и будут организованы папки.
руками раскомментировать или написать PostResources выше
?
...
Рейтинг: 0 / 0
хранение файлов
    #38872005
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже писал
авторно проблема в том , что если раскоментировать приложение вылетает потому как не может найти того что не понимает ось. и вылетает ещё не этапе запуска....
...
Рейтинг: 0 / 0
хранение файлов
    #38872031
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя уже писал
авторно проблема в том , что если раскоментировать приложение вылетает потому как не может найти того что не понимает ось. и вылетает ещё не этапе запуска....
давай не торопясь:
- под линукс написать то что понимает линукс
- на хосте с виндой написать ТОЛЬКО то что понимает она.
Так?
...
Рейтинг: 0 / 0
хранение файлов
    #38872043
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автордавай не торопясь:
- под линукс написать то что понимает линукс
- на хосте с виндой написать ТОЛЬКО то что понимает она.
Так?
так .
прописать в context.xml в war?
прописывать где-то ещё нет смысла. при длительной нормальной работе всё забывается и случае сбоя хрен вспомнишь.
...
Рейтинг: 0 / 0
хранение файлов
    #38872054
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпрописать в context.xml в war?
я не знаю томкат.
Какой у него конфиг самого верхнего уровня?
В любом аппСервере есть 2 уровня конфига: приложения и сервера.
Напиши тут оба конфига....
...
Рейтинг: 0 / 0
хранение файлов
    #38872055
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разве не логично отдать war в мануале написать - для окон такая папка должна быть, для линукса -такая с тикими правами
и всё
это первое.
второе при отладке (что намного чаще) каждый раз деплоит в линуксе - вносит правку в код?
...
Рейтинг: 0 / 0
хранение файлов
    #38872062
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, решаем задачу - где разместить переменную. В классе или в процедуре.
...
Рейтинг: 0 / 0
хранение файлов
    #38872068
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявторое при отладке (что намного чаще) каждый раз деплоит в линуксе - вносит правку в код?
значить настройка уровня сервера. Есть такая?
...
Рейтинг: 0 / 0
хранение файлов
    #38872074
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКакой у него конфиг самого верхнего уровня?
В любом аппСервере есть 2 уровня конфига: приложения и сервера.
зачем?
я борюсь с этим. хочу чтоб всё было в одном war
разные конфиги для данной задачи это костыли.
ведь тут должно быть решение чисто программиное.
...
Рейтинг: 0 / 0
хранение файлов
    #38872075
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторзначить настройка уровня сервера. Есть такая?
нет такой
...
Рейтинг: 0 / 0
хранение файлов
    #38872095
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторзначить настройка уровня сервера. Есть такая?
нет такой
вадяавторКакой у него конфиг самого верхнего уровня?
В любом аппСервере есть 2 уровня конфига: приложения и сервера.
зачем?
я борюсь с этим. хочу чтоб всё было в одном war
разные конфиги для данной задачи это костыли.
ведь тут должно быть решение чисто программиное.
очень спорно.
Тогда не было бы DataSourse-JNDI
...
Рейтинг: 0 / 0
хранение файлов
    #38872097
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя борюсь с этим. хочу чтоб всё было в одном war
тогда ты не админ. Тут тебе 100 раз это говорили.
...
Рейтинг: 0 / 0
хранение файлов
    #38872103
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут JNDI
http://stackoverflow.com/questions/11669507/embedded-tomcat-7-servlet-3-0-annotations-not-working
цель несколько иная, но
прочитать-то должно,
вот эта часть должна отработать
Код: java
1.
2.
3.
4.
5.
6.
  Tomcat tomcat = new Tomcat();
       
        String webappDirLocation = "/C:\\Catalina\\conf\\Catalina\\localhost";
        StandardContext ctx = (StandardContext) tomcat.addWebapp(webappDirLocation, "mo");

        WebResourceRoot resources = new StandardRoot(ctx);
...
Рейтинг: 0 / 0
хранение файлов
    #38872110
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяя борюсь с этим. хочу чтоб всё было в одном war
тогда ты не админ. Тут тебе 100 раз это говорили.
я хочу исключить админа от этого проекта. и я не хочу помнить что для разных осей надо разные конфиги где-то прописыват...
это плохое желание?
...
Рейтинг: 0 / 0
хранение файлов
    #38872112
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяцель несколько иная, но
я и все тебе про фому, а ты про....хочу программно все ГЛОБАЛЬНЫЕ настройки сервера запихать в WAR.
Это всё равно, что Программа.exe начинает path винды устанавливать внутри себя.
Удачи!
...
Рейтинг: 0 / 0
хранение файлов
    #38872117
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя хочу исключить админа от этого проекта. и я не хочу помнить что для разных осей надо разные конфиги где-то прописыват...
это плохое желание?
да. Это изврат.
Устанавливай сам сервер тоже из war))
...
Рейтинг: 0 / 0
хранение файлов
    #38872134
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяцель несколько иная, но
я и все тебе про фому, а ты про....хочу программно все ГЛОБАЛЬНЫЕ настройки сервера запихать в WAR.
Это всё равно, что Программа.exe начинает path винды устанавливать внутри себя.
Удачи!
это не глобальные настройки сервера.
в мануале нигде не прописано что этого делать нельзя.
любая программ может создавать любые папки в любом месте (на которые есть права у данного юзера) чт в окнах , что в линуксе.
определив ось и проверив наличие нужных папок , при отсутствии их - создать.
такое предусмотрено и tomcat api.
приложение запущенное под котярой (серверная часть , jsp) могут читать любое место системы и писать в любое (с учетом прав)
кто мешает прочитать и context.xml?
пока только недостаток знаний, который я пытаюсь изменить...
...
Рейтинг: 0 / 0
хранение файлов
    #38872144
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
усттановить сервер котяры просто - нужно просто в нужную папку разпаковать. запускается от простым скиптом.
в принцЫпе для этого не сложно сделать jar.
...
Рейтинг: 0 / 0
хранение файлов
    #38872159
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадялюбая программ может создавать любые папки
я тоже могу сменить path у винды на Delphi.
Но, если ты собираешься расти на сервера повыше, "не пей Иванушка из колодца".
У тебя проект на JS, где ты тоже вогнал всё мыслимое в деплой файла на сервер.
Есть более интересные вещи.
Я тебе сказал, как делает Оракл - отдельной утилитой.
...
Рейтинг: 0 / 0
хранение файлов
    #38872339
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Он не хочет отдельных утилит, хочет фсёискаропки (т.е. из СВОЕГО war) ...
Короче, человек в поисках серебряной пули ...
...
Рейтинг: 0 / 0
хранение файлов
    #38872398
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovPetro123,
Он не хочет отдельных утилит, хочет фсёискаропки (т.е. из СВОЕГО war) ...
Короче, человек в поисках серебряной пули ...
я его понял и сказал IMHO. Пусть пишет.
...
Рейтинг: 0 / 0
хранение файлов
    #38872457
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovPetro123,

Он не хочет отдельных утилит, хочет фсёискаропки (т.е. из СВОЕГО war) ...
Короче, человек в поисках серебряной пули ...
ну если б её можно найти...
а если серьёзно - есть задача помогите решить. здесь же умные прогеры тусуются...
пример дал, доки от первоисточника.
протестирую любой вариант.
...
Рейтинг: 0 / 0
хранение файлов
    #38872568
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: xml
1.
<Context  path="/mo" >

Да ёрш же вашу медь и куча поскипанных матов!..
Первое: никогда, нет, НИКОГДА не устанавливайте атрибут path контекста - этот имеет другое значение и просто игнорируется. В доке, которую вы, якобы читали, об этом написано.
Второе: я уже излагал, что нужно (c)делать:
1. Установить атрибут docBase контекста, который будет "отдавать картинки":
Код: xml
1.
<Context docBase="какой/то/путь" />


2. Использовать (произвольный) параметр для контекста, который будет "принимать файлы" (собственно сервлет):
Код: xml
1.
2.
3.
<Context>
  <Parameter name="хранилище" value="какой/то/путь" />
</Context>

3. Реализовать в сервлете метод init(), который и вычитает нужное значение из (именованного) параметра контекста;

Дожёвываю:
4. Прописать в двух местах (для docBase и value) одно и тоже значение, которое должно "смотреть" куда-то за пределы webApps хоста;
5. Упаковать оба два каталога в один war.
Пример: в catalina.base находятся:
Код: plaintext
1.
2.
  conf/
  lib/
  webapps/
Для своих грязных целей будем использовать подкаталог .store. Тогда:
Код: plaintext
1.
2.
  conf/
  lib/
  webapps/демо.war
Внутри демо.war будут:
Код: plaintext
1.
2.
3.
  картинки/META-INF/context.xml
  приложение/META-INF/contex.xml
  приложение/WEB-INF/разная шняга
  приложение/прочая шняга

картинки/META-INF/context.xml:
Код: xml
1.
<Context docBase=".store" />

приложение/META-INF/context.xml
Код: xml
1.
2.
3.
<Context>
  <Parameter name="хранилище" value=".store" />
</Context>

Реализацию метода init() не привожу ввиду полной тривиальности.

P.S. Относительные пути могут "смотреться" или относительно catalina.base или относительно текущего каталога.
...
Рейтинг: 0 / 0
хранение файлов
    #38872648
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор<Context path="/mo" >
Да ёрш же вашу медь и куча поскипанных матов!..
Первое: никогда, нет, НИКОГДА не устанавливайте атрибут path контекста - этот имеет другое значение и просто игнорируется. В доке, которую вы, якобы читали, об этом написано.

1) это ты скажи ораклоидам, которые netbeans продвигают
это сам netbeans вставляет, и без этого war не запускается

2) предложенный вариант не освобождает от ручного изменения путей для установки под разные оси.
...
Рейтинг: 0 / 0
хранение файлов
    #38872701
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя1) это ты скажи ораклоидам, которые netbeans продвигают
это сам netbeans вставляет, и без этого war не запускается"Ну сумасшедший - что возьмёшь" (ц) В.Высоцкий.
Простая мысль, что промышленной системе покласть на проблемы СетевыхБобов за полным отсутствием оных - никогда не приходила в (вашу) голову?2) предложенный вариант не освобождает от ручного изменения путей для установки под разные оси.А подумать?
Причём дважды:
1. Относительные пути не зависят от системы. Абсолютные пути вида "${catalina.base}/путь" - тоже;
2. Вы упрямо думаете, что сможете придумать "волшебный путь", который устроит всех.
Не сможете. И дело даже не в наклоне слешей - винде пофигу и она принимает оба варианта.

P.S. Даже тупые сисадмины смогут перенастроить предложенный мною вариант под свои нужды.
Просто им придётся найти инструкцию на каком-нибудь форуме.
Нет, в этой инструкции не будет никаких модификаций вашего уникального war-ника.
...
Рейтинг: 0 / 0
хранение файлов
    #38872807
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвадя
1) это ты скажи ораклоидам, которые netbeans продвигают
это сам netbeans вставляет, и без этого war не запускается
"Ну сумасшедший - что возьмёшь" (ц) В.Высоцкий.
Простая мысль, что промышленной системе покласть на проблемы СетевыхБобов за полным отсутствием оных - никогда не приходила в (вашу) голову?
это имя вебприложения, и если его убрать приложение займет место ROOT.
...
Рейтинг: 0 / 0
хранение файлов
    #38872822
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2. Вы упрямо думаете, что сможете придумать "волшебный путь", который устроит всех.
Не сможете. И дело даже не в наклоне слешей - винде пофигу и она принимает оба варианта.

дело действительно нп в наклоне слешей - дело в том, что кроме наклона слешей есть ещё отличия для путей в окнах и линуксах
и меня не устраивает путь "${catalina.base}/путь"
мне надо путь полностью абсолютный

и когда я ставлю в context.xml:
Код: xml
1.
2.
3.
  <Resources>
    <PostResources base="c:\Catalina\mo" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/dataFiles"/>
  </Resources>



это обрабатывается, очем говорит этосообщение в процессе запуска приложения:
org.apache.catalina.util.LifecycleBase.start The start() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mo]] after start() had already been called


задача в замене <PostResources base="c:\Catalina\mo"
...
Рейтинг: 0 / 0
хранение файлов
    #38876241
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадязадача в замене <PostResources base="c:\Catalina\mo"Вы тупо не понимаете, что Pre/PostResource вам не нужны. Вообще.
...
Рейтинг: 0 / 0
хранение файлов
    #38876317
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвадязадача в замене <PostResources base="c:\Catalina\mo"Вы тупо не понимаете, что Pre/PostResource вам не нужны. Вообще.
возможно, тогда как решить задачу только в моей постановке вопроса.
...
Рейтинг: 0 / 0
хранение файлов
    #38877128
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам уже сказано, что нужно сделать. Сделаете - предметно обсудим возникшие проблемы.
...
Рейтинг: 0 / 0
хранение файлов
    #38877198
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВам уже сказано, что нужно сделать. Сделаете - предметно обсудим возникшие проблемы.
все предложенное требует внешнего участия , либо привязку к расположению catalina.
это не устраивает. требование к внешнему участию - создать папку с требуемым именем, в требуемом месте и назначить права (для линукса).
все пути и расположения (java, tomcat) должны использоваться принятыми по-умолчанию(без дополнительной правки/настройки)
в коде приложения прописываются пути для сохранения файлов картинок (для windiws и linux) (хотя б как параметры в web.xml)
приложение должно записывать по этим адресам файлы картинок (в зависимости от оси) и отображать их в теге src="....."
путь в теге src должен быть постоянным, вне зависимости от оси.
на данный момент я знаю как это отображение сделать с помощью PostResources ака алиас.
...
Рейтинг: 0 / 0
хранение файлов
    #38877239
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятребование к внешнему участию - создать папку с требуемым именем, в требуемом месте и назначить права (для линукса)С этого места, пожалуйста, подробнее: а каким образом волшебные параметры гарантируют всё вышеперечисленное без (по)стороннего вмешательсва?все пути и расположения (java, tomcat) должны использоваться принятыми по-умолчанию(без дополнительной правки/настройки)Просто неправда.путь в теге src должен быть постоянным, вне зависимости от осиОн таким и будет. Что характерно - без вашей помощи.
Когда пользователь щёлкнет по ссылке с атрибутом src="/картинки/путь/внутри/картинка.jpg", сервлет-контейнер самостоятельно заменит "/картинки" на значение атрибута docBase этого контекста.
Это даст ему путь в файловой системе, а это, в свою очередь позволит воспользоваться и файловым API и всякими продвинутыми способами передачи данных.
Что характерно, любой web-сервер сделает точно тоже самое, только параметры настройки будут другими.
...
Рейтинг: 0 / 0
хранение файлов
    #38877306
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторавтортребование к внешнему участию - создать папку с требуемым именем, в требуемом месте и назначить права (для линукса)
С этого места, пожалуйста, подробнее: а каким образом волшебные параметры гарантируют всё вышеперечисленное без (по)стороннего вмешательсва?
сформулирую иначе:
стороннее вмешательство должно быть ограничено только созданием требуемой папки с заданными правами.

авторавторвсе пути и расположения (java, tomcat) должны использоваться принятыми по-умолчанию(без дополнительной правки/настройки)
Просто неправда.

что здесь не правда?
при установке девиан всё ставится в определённые места - их менять не надо.авторавторпуть в теге src должен быть постоянным, вне зависимости от оси
Он таким и будет. Что характерно - без вашей помощи.
Когда пользователь щёлкнет по ссылке с атрибутом src="/картинки/путь/внутри/картинка.jpg", сервлет-контейнер самостоятельно заменит "/картинки" на значение атрибута docBase этого контекста.
Это даст ему путь в файловой системе, а это, в свою очередь позволит воспользоваться и файловым API и всякими продвинутыми способами передачи данных.
Что характерно, любой web-сервер сделает точно тоже самое, только параметры настройки будут другими.
docBase привязан к путям приложения
...
Рейтинг: 0 / 0
хранение файлов
    #38878476
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадястороннее вмешательство должно быть ограничено только созданием требуемой папки с заданными правамиЧто будете делать, когда такое создание станет невозможно?при установке девиан всё ставится в определённые места - их менять не надо"Узок их круг, страшно далеки они от народа".
А на винде и JRE/JDK и Tomcat могут быть установлены куда угодно и от этого ничего не будет зависеть. В хрюниксах, подозреваю, тоже.
Т.е. в отношении, как минимум, винды вы просто неправы. Но выдаёте своё мнение за истину в последней инстанции.docBase привязан к путям приложения"Кто вам это сказал??? Плюньте ему в лицо, назовите лжецом и прогоните из собственного дома".
...
Рейтинг: 0 / 0
хранение файлов
    #38878529
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторавторвадя
стороннее вмешательство должно быть ограничено только созданием требуемой папки с заданными правами
Что будете делать, когда такое создание станет невозможно?
это принимается как аксиома.

авторавторпри установке девиан всё ставится в определённые места - их менять не надо
"Узок их круг, страшно далеки они от народа".
А на винде и JRE/JDK и Tomcat могут быть установлены куда угодно и от этого ничего не будет зависеть. В хрюниксах, подозреваю, тоже.
Т.е. в отношении, как минимум, винды вы просто неправы. Но выдаёте своё мнение за истину в последней инстанции.
сейчас у меня под окнами идет разработка этого проекта в netbeans, проект разворачивается по настройкам netbeans,
на этой же машине томсат установлен как сервис. war разворачивается папках сервиса - абсолютный путь указан один, работает стабильно.
автор В хрюниксах, подозреваю, тоже.
хрюниксы можно установить из дистрибутива - всё встанет в в места, забитые в дистрибутиве, и пусть там стоит.
я знаю где расположен котяра, куда положить war. создать папку может любой админ, даже незнакомый с настройками котяры.

авторавторdocBase привязан к путям приложения
"Кто вам это сказал??? Плюньте ему в лицо, назовите лжецом и прогоните из собственного дома".
если ты так уверенно говоришь, значит знаешь о чём говоришь...
тогда подробно опиши как можно изменить docBase из кода самого приложения в зависимости от оси. без внешнего участия человека. я не нашёл как это сделать.
есть тз - его надо соблюдать....
...
Рейтинг: 0 / 0
хранение файлов
    #38878681
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя...
тогда подробно опиши как можно изменить docBase из кода самого приложения в зависимости от оси. без внешнего участия человека. я не нашёл как это сделать...
Т.е. смысл моего сообщения 17220469 понят не был?
...
Рейтинг: 0 / 0
хранение файлов
    #38878685
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovвадя...
тогда подробно опиши как можно изменить docBase из кода самого приложения в зависимости от оси. без внешнего участия человека. я не нашёл как это сделать...
Т.е. смысл моего сообщения 17220469 понят не был?
к сожалению конкретной реализации не понял....
растолкуй с примером.
...
Рейтинг: 0 / 0
хранение файлов
    #38878722
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяAlex Kuznetsovпропущено...

Т.е. смысл моего сообщения 17220469 понят не был?
к сожалению конкретной реализации не понял....
растолкуй с примером.
Код: plaintext
1.
2.
3.
base	
Identifies where the resources to be used are located. This attribute is required by the org.apache.catalina.WebResourceSet
implementations provided by Tomcat and should specify the absolute path to the file, directory or JAR where the resources are located.
Custom implementations may not require it.

Перевод:
Код: plaintext
1.
2.
3.
base - Указывает где находятся используемые ресурсы. 
Этот атрибут обязателен для реализаций org.apache.catalina.WebResourceSet предоставленными с Tomcat и должны указывать
абсолютный путь к файлу, каталогу или архиву, в котором располагаются ресурсы. 
 Пользовательские реализации могут его не требовать. 

Таким образом можете разработать СВОЙ класс, который будет реализовывать интерфейс org.apache.catalina.WebResourceSet и который не будет требовать указания base, а работать на основании Ваших правил. За основу (пример) можете взять исходные коды org.apache.catalina.webresources.DirResourceSet.

Что здесь не понятного, какие примеры нужны?
...
Рейтинг: 0 / 0
хранение файлов
    #38878791
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧто здесь не понятного, какие примеры нужны?
пример реализации такого класса.
если тебе в этом всё понятно - сделай простейший пример.
я видимо в этом полностью запутался...
...
Рейтинг: 0 / 0
хранение файлов
    #38878946
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторЧто здесь не понятного, какие примеры нужны?
пример реализации такого класса.
если тебе в этом всё понятно - сделай простейший пример.
я видимо в этом полностью запутался...
Ну может вот так хотя-бы (подглядев в открытый исходный код соответствующего класса):
Код: java
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.
import java.io.File;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.WebResourceRoot;
import org.apache.catalina.WebResourceRoot.ResourceSetType;

public class MyDirResourceSet extends org.apache.catalina.webresources.DirResourceSet {

    public MyDirResourceSet() {
	super();
    }

    public MyDirResourceSet(WebResourceRoot root, String webAppMount, String base, String internalPath) {
	super();
	setRoot(root);
	setWebAppMount(webAppMount);
	String lbase = getBaseForHostOS();
	setBase(lbase);

	if (root.getContext().getAddWebinfClassesResources()) {
	    File f = new File(lbase, internalPath);
	    f = new File(f, "/WEB-INF/classes/META-INF/resources");

	    if (f.isDirectory()) {
		root.createWebResourceSet(ResourceSetType.RESOURCE_JAR, "/",
			f.getAbsolutePath(), null, "/");
	    }
	}

	if (getRoot().getState().isAvailable()) {
	    try {
		start();
	    } catch (LifecycleException e) {
		throw new IllegalStateException(e);
	    }
	}
    }

    private String getBaseForHostOS() {
	return ""; // А вот здесь реализовать получение пути в зависимости от ОС
    }

}


...
Рейтинг: 0 / 0
хранение файлов
    #38879134
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в начале работы приложения
Код: javascript
1.
2.
3.
4.
                Tomcat tomcat = new Tomcat();
                StandardContext ctx = (StandardContext) tomcat.addWebapp("/mo", "C:/mo/build/web");
                WebResourceRoot resources = new StandardRoot(ctx);
                MyDirResourceSet ttt = new MyDirResourceSet(resources, "/dataFiles", "C:/Catalina/mo", "/");



предложенный класс переделал (для проверки)
Код: java
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.
import java.io.File;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.WebResourceRoot;
import org.apache.catalina.WebResourceRoot.ResourceSetType;

public class MyDirResourceSet extends org.apache.catalina.webresources.DirResourceSet {

    public MyDirResourceSet() {
        super();
    }

    public MyDirResourceSet(WebResourceRoot root, String webAppMount, String base, String internalPath) {
        super();
        setRoot(root);
        setWebAppMount(webAppMount);
        String lbase = getBaseForHostOS();
        setBase(lbase);

        if (root.getContext().getAddWebinfClassesResources()) {//здесь false
            File f = new File(lbase, internalPath);
            f = new File(f, "/WEB-INF/classes/META-INF/resources");

            if (f.isDirectory()) {
                root.createWebResourceSet(ResourceSetType.RESOURCE_JAR, "/", f.getAbsolutePath(), null, "/");
            }
        }

        if (getRoot().getState().isAvailable()) {//здесь false
            try {
                start();
            } catch (LifecycleException e) {
                throw new IllegalStateException(e);
            }
        }
    }

    private String getBaseForHostOS() {
        return "C:/Catalina/mo"; // т.к.под проверка окнами -то просто подставляю 
    }

}


если я правильно понял - то данный код должен сделать то, что было прописано в context.xml?
(в context.xml это было закомментировано)
Код: xml
1.
2.
3.
4.
5.
6.
<Resources className="org.apache.catalina.webresources.StandardRoot">
    <PostResources
        className="org.apache.catalina.webresources.DirResourceSet"
        base="c:\Catalina\mo" 
        webAppMount="/dataFiles"/>
  </Resources>-->


однако результата нет.
...
Рейтинг: 0 / 0
хранение файлов
    #38879402
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Этот код был лишь отправной точкой для того, чтобы Вы скачали исходники котяры (они же доступны) и посмотрели как реализован класс org.apache.catalina.webresources.DirResourceSet, что он наследует, как реализованы его родители вплоть до первого абстрактного класса.

То что Вы хотите сделать реализуемо, НО для этого надо немного поработать.
В частности, Вам нужно будет переопределить метод
Код: java
1.
protected void initInternal() throws LifecycleException 

наследуемый от класса AbstractFileResourceSet.

А всё остальное оставить, в том числе не нужно переопределять и конструктор - т.е. то что я предложил не подойдёт, т.к. срабатывает немного позже.

Далее используя настройки в content.xml указать свой класс вместо DirResourceSet и всё должно работать.
...
Рейтинг: 0 / 0
хранение файлов
    #38879411
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovвадя,

Этот код был лишь отправной точкой для того, чтобы Вы скачали исходники котяры (они же доступны) и посмотрели как реализован класс org.apache.catalina.webresources.DirResourceSet, что он наследует, как реализованы его родители вплоть до первого абстрактного класса.

То что Вы хотите сделать реализуемо, НО для этого надо немного поработать.
В частности, Вам нужно будет переопределить метод
Код: java
1.
protected void initInternal() throws LifecycleException 

наследуемый от класса AbstractFileResourceSet.

А всё остальное оставить, в том числе не нужно переопределять и конструктор - т.е. то что я предложил не подойдёт, т.к. срабатывает немного позже.

Далее используя настройки в content.xml указать свой класс вместо DirResourceSet и всё должно работать.
я пока не могу понять логики этого механизма, чтение мануала, к сожалению, пользы мне пока не принесло,
буду благодарен, если сможешь объяснить.
а предложенное попробую реализовать.
...
Рейтинг: 0 / 0
хранение файлов
    #38879436
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя...
а предложенное попробую реализовать.Исходники класса AbstractFileResourceSet смотрел?

Он наследуется от AbstractResourceSet->LifecycleBase

У LifecycleBase есть метод
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
@Override
    public final synchronized void init() throws LifecycleException {
        if (!state.equals(LifecycleState.NEW)) {
            invalidTransition(Lifecycle.BEFORE_INIT_EVENT);
        }
        setStateInternal(LifecycleState.INITIALIZING, null, false);

        try {
            initInternal(); // <--------------ВОТ ЭТО НАС И ИНТЕРЕСУЕТ
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            setStateInternal(LifecycleState.FAILED, null, false);
            throw new LifecycleException(
                    sm.getString("lifecycleBase.initFail",toString()), t);
        }

        setStateInternal(LifecycleState.INITIALIZED, null, false);
    }


    protected abstract void initInternal() throws LifecycleException;



Т.к. в AbstractFileResourceSet метод имеет вот такую реализацию:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
@Override
    protected void initInternal() throws LifecycleException {
        fileBase = new File(getBase(), getInternalPath());
        checkType(fileBase);

        String absolutePath = fileBase.getAbsolutePath();
        if (absolutePath.endsWith(".")) {
            absolutePath = absolutePath + '/';
        }
        this.absoluteBase = normalize(absolutePath);

        try {
            this.canonicalBase = fileBase.getCanonicalPath();
        } catch (IOException e) {
            throw new IllegalArgumentException(e);
        }
    }



а fileBase объявлена как private

Нам и надо-то сделать следующее в нашем классе MyDirResourceSet который extends org.apache.catalina.webresources.DirResourceSet:
Код: java
1.
2.
3.
4.
5.
    @Override
    protected void initInternal() throws LifecycleException {
        setBase(getBaseForHostOS());
        super.initInternal();
    }



Всё остальное должно работать само.
...
Рейтинг: 0 / 0
хранение файлов
    #38879442
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяэто принимается как аксиомаОдно из двух: или вы всю жизнь проживёте в счастливом неведении или однажды вам станет стыдно за бесцельно прожитые годы.
...
Рейтинг: 0 / 0
хранение файлов
    #38879449
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвадяэто принимается как аксиомаОдно из двух: или вы всю жизнь проживёте в счастливом неведении или однажды вам станет стыдно за бесцельно прожитые годы.
пытаться спорить с тз - что об стенку головой.
...
Рейтинг: 0 / 0
хранение файлов
    #38879463
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпытаться спорить с тз - что об стенку головой.К себе примените.
Вам давно сказано, что надо сделать.
Более того, сделанное будет работать и с вашими умолчаниями и позволит сисадмину перенастроить расположение хранилища, если ему это понадобится.
Не меняя ни одного байта вашего ненаглядного war.
...
Рейтинг: 0 / 0
хранение файлов
    #38879537
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори позволит сисадмину перенастроить расположение хранилища, если ему это понадобится.

вот с этим я и борюсь
...
Рейтинг: 0 / 0
хранение файлов
    #38879987
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявот с этим я и борюсьИ даже можете внятно объяснить: "Зачем?"???
...
Рейтинг: 0 / 0
хранение файлов
    #38880006
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovвадявот с этим я и борюсьИ даже можете внятно объяснить: "Зачем?"???
я уже объяснял - уровень админов, разный и (к примеру) конторе заказчика они ориентированы на обслуживание виндовых серверов,
о линуксовых имеют отдалённое представление, и меняются как прокладки....
за время безсбойной работы линуксового сервера сменилось несколько.
каждый следующий не знает что надо для настройки конкретного линуксового сервера
этого достаточно?
...
Рейтинг: 0 / 0
хранение файлов
    #38880091
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя уже объяснял - уровень админов, разный и (к примеру) конторе заказчика они ориентированы на обслуживание виндовых серверов,
о линуксовых имеют отдалённое представление, и меняются как прокладки....
за время безсбойной работы линуксового сервера сменилось несколько.
каждый следующий не знает что надо для настройки конкретного линуксового сервера
этого достаточно?Нет. Потому, что и вам объясняю ещё раз:
1. Вам не требуется ни знать куда именно у заказчика установлены JRE/JDK и Tomcat ни вообще беспокоиться об их установке;
2. В части вашего приложения вам требуется чётко и кратко объяснить, что и куда должно быть прописано, а также что и где должно быть создано.
Более того, если заказчика устраивает умалчиваемое расположение хранилище, то всё, что он должен сделать - создать один каталог и, возможно, исправить права доступа. То есть выполнить одну-единственную обязательную операцию. Всё остальное уже прописано вами как нужно.
Поймите одну простую вещь - вне зависимости от вашего мнения о квалификации админов заказчика и вне зависимости от того, насколько это мнение правильно, "их" точно также раздражают и оскорбляют ваши намёки на их некомпетентность, как вас раздражали и, возможно, оскорбляли мои оценки вашей "админской" квалификации.

При этом, заметьте, что я несколько лет одновременно занимался и администрированием промышленной системы и технической поддержкой её конечных пользователей. Это в дополнение к тому, что я взаимодействовал с разработчиками в части исправления обнаруженных ошибок и т.п. Кроме того, предшествующие годы я и профессионально занимался администрированием виндов и (время от времени) работал с разными хрюниксами.
Можете, конечно, не верить, но мой уровень сисадмина существенно выше не только начального, но и, весьма вероятно, выше вашего. Прислушайтесь к мнению опытного человека и не пытайтесь усложнять свою жизнь сверх необходимого.
...
Рейтинг: 0 / 0
хранение файлов
    #38880134
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
еслиб ты был админом в конторе заказчика, я б последовал твоим советам.
но у меня ситуация совсем другая.
и если есть возможность программно сделать, то что ты предлагаешь делать админу - это аналогично как в англии ткачи боролиь с ткацкими машинами.
...
Рейтинг: 0 / 0
хранение файлов
    #38880396
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Ну так что, получилось сделать?

У меня да...

tc8lib.jar после сборки нужно поместить в %CATALINA_HOME%\lib, думаю, что это нужно описать в документации по развёртыванию решения.
...
Рейтинг: 0 / 0
хранение файлов
    #38880398
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Ну дак сделайте им утилиту/батник/админский jar.
Вы же хачите АппСервер)
...
Рейтинг: 0 / 0
хранение файлов
    #38880404
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,
Тупые админы не положат)
...
Рейтинг: 0 / 0
хранение файлов
    #38880408
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Alex Kuznetsov,
Тупые админы не положат)Ну, для тупых одминов можно .bat, .sh нарисовать, который собственно при установках котяры по умолчанию сам всё может сделать, лишь бы правей было достаточно...
...
Рейтинг: 0 / 0
хранение файлов
    #38880413
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,
Да.
Как вариант, и пути может настроить настроить)
...
Рейтинг: 0 / 0
хранение файлов
    #38880417
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Alex Kuznetsov,
Да.
Как вариант, и пути может настроить настроить)А то...
...
Рейтинг: 0 / 0
хранение файлов
    #38880504
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем, полной победы программиста над админом не случилось)).
Только над строкой Base))
...
Рейтинг: 0 / 0
хранение файлов
    #38880510
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123в общем, полной победы программиста над админом не случилось)).
Только над строкой Base))А её, полной победы программиста над админом, в данном случае и не может быть.
Программист по определению не может раздавать права в продуктивной системе, он может лишь требовать наличие определённых прав.
...
Рейтинг: 0 / 0
хранение файлов
    #38880667
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alex Kuznetsov
для твоего варианта
библиотека скомпилировалась , переместил куда сказано, при запуске приложения
у меня не получается...
вот что пишет при разворацивании.
Код: xml
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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
16-Feb-2015 16:46:27.489 INFO [http-apr-8080-exec-8] org.apache.catalina.util.LifecycleBase.stop The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/tc8res]] after stop() had already been called. The second call will be ignored.
16-Feb-2015 16:46:28.004 INFO [http-apr-8080-exec-8] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/tc8res]
16-Feb-2015 16:46:28.051 INFO [http-apr-8080-exec-9] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor C:\Catalina\conf\Catalina\localhost\tc8res.xml
16-Feb-2015 16:46:28.051 SEVERE [http-apr-8080-exec-9] org.apache.tomcat.util.digester.Digester.startElement Begin event threw exception
 java.lang.ClassNotFoundException: MyDirResourceSet
	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:116)
	at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1184)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
	at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1457)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:541)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:500)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:731)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:316)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455)
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1493)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460)
	at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:906)
	at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:344)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:285)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2431)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2420)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

16-Feb-2015 16:46:28.145 SEVERE [http-apr-8080-exec-9] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for /tc8res
 org.xml.sax.SAXParseException; systemId: file:/C:/Catalina/conf/Catalina/localhost/tc8res.xml; lineNumber: 4; columnNumber: 75; Error at (4, 75) : MyDirResourceSet
	at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:1914)
	at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:1946)
	at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1187)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
	at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1457)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:541)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:500)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:731)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:316)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455)
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1493)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460)
	at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:906)
	at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:344)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:285)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2431)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2420)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: MyDirResourceSet
	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:116)
	at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1184)
	... 64 more

16-Feb-2015 16:46:28.316 SEVERE [http-apr-8080-exec-9] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line 4 column 75
16-Feb-2015 16:46:28.363 SEVERE [http-apr-8080-exec-9] org.apache.catalina.startup.ContextConfig.configureStart Marking this application unavailable due to previous error(s)
16-Feb-2015 16:46:28.363 SEVERE [http-apr-8080-exec-9] org.apache.catalina.core.StandardContext.startInternal Error getConfigured
16-Feb-2015 16:46:28.363 SEVERE [http-apr-8080-exec-9] org.apache.catalina.core.StandardContext.startInternal Context [/tc8res] startup failed due to previous errors
16-Feb-2015 16:46:28.379 INFO [http-apr-8080-exec-9] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of configuration descriptor C:\Catalina\conf\Catalina\localhost\tc8res.xml has finished in 328 ms


...
Рейтинг: 0 / 0
хранение файлов
    #38880822
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov
запустить удалось. логика стала понятна.
только этот вариант тоже неустраивает. т.к. надао помнить , что для развертывания нужна ещё одна библиотека.
хотя как защита от несанкционированного распространения можно использовать :)
...
Рейтинг: 0 / 0
хранение файлов
    #38880826
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alex Kuznetsov
спасибо за конкретную помощь и готовое решение.
...
Рейтинг: 0 / 0
хранение файлов
    #38881862
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя2Alex Kuznetsov
спасибо за конкретную помощь и готовое решение.Пожалуйста.
А про то что всё будет "искаропки" придётся при таких вводных забыть. Такого не будет. Всё равно нужно брать напильник и допиливать.
...
Рейтинг: 0 / 0
152 сообщений из 152, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / хранение файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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