【问题标题】:Weblogic 12.2.1, links errorWeblogic 12.2.1,链接错误
【发布时间】:2016-04-13 08:31:44
【问题描述】:

我有一个 spring mvc 应用程序在 tomcat 上运行良好。

但是当我尝试使用 weblogic 运行时不要重定向。

例如: 我的jsp有一个链接:<a href="new">New User</a>

我的控制器捕捉到了 url:

@RequestMapping(value = { "/new" }, method = { org.springframework.web.bind.annotation.RequestMethod.GET })
    public ModelAndView newUser() {
        ModelAndView model = new ModelAndView("UserForm");
        model.addObject("user", new User());
        return model;
    }

这在 tomcat 上运行,但是当我尝试使用 weblogic 时,他重定向到“http://localhost:7001/new”并且必须是“http://localhost:7001/HibernateJavaBased/new

如何设置 weblogic 服务器?

更新 1:我的 App 是 java config 这是初始化程序

public class SpringWebAppInitializer implements WebApplicationInitializer {

    public void onStartup(ServletContext container) throws ServletException {

        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(ApplicationContextConfig.class);
        ctx.setServletContext(container);

        ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx));
        servlet.setLoadOnStartup(1);
        servlet.addMapping("/");
        System.out.println(ctx.getServletContext().getContextPath());

        servlet.setInitParameter("contextClass", ctx.getClass().getName());
        container.addListener(new ContextLoaderListener(ctx));
    }
}

还有 AppConfig:

@Configuration
@EnableWebMvc
@ComponentScan({ "net.codejava.spring" })
@EnableTransactionManagement
public class ApplicationContextConfig extends WebMvcConfigurerAdapter {

    @Bean(name = { "viewResolver" })
    public InternalResourceViewResolver getViewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }

【问题讨论】:

    标签: java spring weblogic


    【解决方案1】:

    也许在 tomcat 上你已经配置了上下文根。您也可以使用文件 weblogic.xml 在 Web 逻辑中配置上下文根如果您还没有文件 weblogic.xml,请在 /WEB-INF/ 目录下创建一个新文件 weblogic.xml。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <wls:weblogic-web-app
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    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/ejb-jar_3_0.xsd
    http://xmlns.oracle.com/weblogic/weblogic-web-app
    http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
    
         <wls:weblogic-version>12.2.1</wls:weblogic-version>
         <wls:context-root>HibernateJavaBased</wls:context-root>
    </wls:weblogic-web-app> 
    

    希望对你有帮助

    【讨论】:

    • 感谢回复,但不起作用。如果我将上下文根设置为“HibernateJavaBased/”,我会运行应用程序,但我无法理解 weblogic 需要此更改的原因。
    • 您也可以发布您的 web.xml 吗?
    • 更新主帖。与 tomcat 和 weblogic 一起运行,tomcat 添加斜线和 weblogic 不...
    • 你在哪里配置了字符串 HibernateJavaBased?你能在你的 web 应用程序中搜索字符串 HibernateJavaBased 并告诉我它在哪里使用。
    • 我猜你正在做的是右键单击你的项目->属性->Web项目属性,然后设置上下文根。这是你做的吗?当你像这样设置上下文根时,我认为它只是更改了tomcat服务器在eclipse内部使用的文件。因此,如果您设置的上下文路径仅在内部 tomcat 服务器中使用。您将应用程序部署为战争还是耳朵?
    猜你喜欢
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2018-12-04
    • 2018-04-26
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多