Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error when publishing Spring application to Geronimo web server

I'm trying to set up Spring with Geronimo web server, but I'm getting the following error:

2010-10-08 18:52:45,105 WARN  [PathMatchingResourcePatternResolver] Cannot search for matching files underneath URL [bundle://316.0:1/com/unveiled/politics/] because it does not correspond to a directory in the file system
java.io.FileNotFoundException: URL [bundle://316.0:1/com/unveiled/politics/] cannot be resolved to absolute file path because it does not reside in the file system: bundle://316.0:1/com/unveiled/politics/
 at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:204)
 at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:51)
 at org.springframework.core.io.UrlResource.getFile(UrlResource.java:168)
...

This application seems to work on JBoss AS.

Some other configuration files that matter:

Web.xml:

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

    <!-- Handles all requests into the application -->
    <servlet>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/spring/app-config.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

app-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- Scans the classpath of this application for @Components to deploy as beans -->
    <context:component-scan base-package="com.unveiled.politics" />

    <!-- Configures Spring MVC -->
    <import resource="mvc-config.xml" />

</beans>

mvc-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- Configures the @Controller programming model -->
    <mvc:annotation-driven />

    <!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

WelcomeController.java:

package com.unveiled.politics.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class WelcomeController {
    @RequestMapping(value="welcome", method = RequestMethod.GET)
    public String getWelcomePage(ModelMap model) {
        return "index";
    }
}
like image 534
Corey Avatar asked May 06 '26 09:05

Corey


1 Answers

Component-scanning will only work if the application (whether it's an EAR or a WAR) is unpacked by the application on to the filesystem. Appservers generally will do this anyway, for runtime performance reasons.

So it looks like your Geronimo server isn't doing this. Hopefully there's a setting somewhere where you can configure to unpack the app before running it.

like image 92
skaffman Avatar answered May 08 '26 05:05

skaffman