2013-11-20 5 views
1

В настоящее время я работаю над проектом с использованием Apache Tiles, но столкнулся с следующей проблемой.
Папка проекта имеет (a или несколько) пробелы в имени пути.Apache Tiles + пробелы в пути к папке

C:\Users\MyUsername\Documents\Dropbox\Subfolder\My Projects\GymApp 

Теперь, к моему удивлению, когда я использую Apache Tiles он пытается загрузить tile-definition.xml по следующему адресу:

C:\Users\MyUsername\Documents\Dropbox\Subfolder\My%20Projects\GymApp\src\main\webapp\WEB-INF\configurations\tile-definition.xml 

Таким образом, проблема лежит в той части, где инструмент X пытается преобразовать все пробелы до% 20 (кодировка URL), где инструмент X является: Windows, Java, Tomcat, Spring или Apache Tiles. Из-за этого Apache Tiles не может загрузить файл, так как файл не существует (если я пытаюсь открыть URL-адрес в проводнике Windows, он дает мне ошибку, что файл не существует, то же самое отображается в журнале консоли моей IDE).

Что касается моего вопроса, можно ли запустить проект Apache Tiles в папке, содержащей пробелы? Если да, то как это делается?

Примечание *: Если я изменяю имя папки My Projects на My_Projects, проект запускается без каких-либо ошибок, поэтому я знаю, что путь к папке здесь виноват.

- Edit -
Я использую этот код, чтобы настроить tilesConfigurer

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" /> 
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
    <property name="definitions" value="/WEB-INF/configurations/tiles.xml" /> 
</bean> 

- Edit 2 -
Это то, что мой журнал IDE показывает:

DEBUG BaseLocaleUrlDefinitionDAO:154 - File Resource file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles.xml at file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles.xml not found, continue 
DEBUG BaseLocaleUrlDefinitionDAO:154 - File Resource file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles_en.xml at file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles_en.xml not found, continue 
DEBUG TestDispatcherServlet:938 - Could not complete request 
javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name '' 
+0

У меня тоже есть эта проблема. Вы нашли способ решить это? – jonasespelita

+0

@jonasespelita, к сожалению, нет, я «исправил» его, не используя никаких пробелов в пути. –

ответ

0

Do вы используете контекстно-относительные пути при указании вашего бина для плиткиConfigurer? Потому что, если вы это сделаете, не имеет значения, содержит ли ваша папка проекта пробелы.

У меня есть следующий код в моем диспетчерском-servlet.xml:

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" /> 
</bean> 
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles/config/template-definitions.xml</value> 
      <value>/WEB-INF/tiles/config/page-definitions.xml</value> 
     </list> 
    </property> 
</bean> 

... и даже если моя папка проекта содержит пробел, плитка до сих пор находит определение XML.

+0

Я добавил код, который я использую, и журнал ошибок моих тестов JUnit + MockMvc. Выполнение тех же тестов с помощью «правильного» пути проекта проходит тесты без каких-либо ошибок. –