döndürür. Tomcat7 uygulamasını, OpenShift üzerinde Spring MVC kullanarak şu etki alanı adı altında çalıştırıyorum: financial-datasite.rhcloud.com. Uygulamayı bir Tomcat sunucusunu kullanarak yerel olarak test edip test ediyorum ve daha sonra uzaktan depoya aktarıyorum. Şu anda yalnızca bir Ana Sayfa ve farklı bir sayfaya yönlendirmenin altında bir düğme var. Yerel olarak test ederken, her iki sayfa da içeriği beklendiği gibi görüntüler. Ancak, uzak sunucuya dağıtıldığında, yalnızca Ana Sayfa görüntülenir ve bu düğmeyi tıklattığınızda bir HTTP 404 hatası alıyorum. Burada benzer sorulara rastladım, ama hiçbiri şu ana kadar hiç yardımcı olmadı. Web.xml, pom.xml, servlet-context.xml ve denetleyici dosyalarını yapılandırma etrafında oynadım. Ancak, bunların hiçbiri yardımcı olmadı.Openshift Spring MVC Tomcat uygulamasının dağıtılan yolu 404
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/Sectors],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.spring.mvc.SectorController.printWelcome(org.springframework.ui.ModelMap)
: Ben de uzak sunucu ikinci sayfa için kontrolör sınıfında (hatta benim projede yok) bazı 'printWelcome' yöntemi erişiyor ileri süren biteni izleyebilmek için
tail files and logs kontrol edilmiştir
İşte benim project structure. Yerel sunucumda, varsayılan sayfa localhost:8181/mvc/
olarak çalıştırılır ve ikinci sayfa http://localhost:8181/mvc/Sectors
olarak çalıştırılır. Benzer şekilde, gönderi sonrası, ana sayfa http://financial-datasite.rhcloud.com olarak çalıştırılır ve ikinci sayfa http://financial-datasite.rhcloud.com/Sectors olarak çalıştırılır, bu da /WEB-INF/views/hello.jsp için bir 404 hatası atar. Bu, yine proje dizinimde bile mevcut değildir. . Günlük dosyalarında gözlemlediğim diğer bir şey de kodun SectorController sınıfına girmemesidir, çünkü kaydedilecek yazdırma komutları için kodlanmış gibi. Bu, sayfadan dağıtılan siteden gerçekten istendiğinde konsola giriş yapmıyor. Uzak sunucuda hangi dosyaların çalıştırıldığından ve farkında olmadığım herhangi bir yapılandırma sorunundan emin değilim. Aşağıda, web.xml, pom.xml, servlet-context.xml, Sectors.jsp, yüklenen yeni sayfayı aradığım Google-Maps.js ve SectorController.java (denetleyici dosyasıdır) ikinci sayfa). Uzun bir soru için özür dileriz, daha fazla bilgiye ihtiyacınız varsa lütfen bize bildirin. Herhangi bir yardım takdir edilecektir, teşekkürler.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>Financial Data Site</display-name>
<servlet>
<servlet-name>financial</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>financial</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
</web-app>
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring</groupId>
<artifactId>mvc</artifactId>
<name>SpringMVC</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
<!-- Newly Added from here -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>eap</id>
<url>http://maven.repository.redhat.com/techpreview/all</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>eap</id>
<url>http://maven.repository.redhat.com/techpreview/all</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!-- Till here -->
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- MySQL database driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<!-- Tag Library -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<scope>compile</scope>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!-- When built in OpenShift the 'openshift' profile will be
used when invoking mvn. -->
<!-- Use this profile for any OpenShift specific customization
your app will need. -->
<!-- By default that is to put the resulting archive into the
'deployments' folder. -->
<!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html -->
<id>openshift</id>
<build>
<finalName>financial</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<outputDirectory>webapp</outputDirectory>
<warName>ROOT</warName>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
sunucu uygulaması-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<annotation-driven />
<context:component-scan base-package="com.spring.mvc" />
<resources mapping="/resources/**" location="/resources/" />
<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
</beans:beans>
Sectors.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ page session="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Sectors</title>
</head>
<body>
<h1>Message</h1>
<c:if test="${not empty Sectors}">
<ul>
<c:forEach var="_SectorNames" items="${Sectors}">
<li>${_SectorNames}</li>
</c:forEach>
</ul>
</c:if>
</body>
</html>
Google Maps.js: Aşağıdaki pasajı yalnızca harita üzerinde bir div bölüm oluşturmak için ve yeni bir pencerede yeni bir sayfa çağırmak için kullanılan işlevini içeren
function HomeControl(controlDiv, map)
{
// Set CSS for the control border.
var _ControlUI = document.createElement('div');
_ControlUI.style.backgroundColor = '#fff';
_ControlUI.style.border = '2px solid #fff';
_ControlUI.style.borderRadius = '3px';
_ControlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)';
_ControlUI.style.cursor = 'pointer';
_ControlUI.style.marginBottom = '22px';
_ControlUI.style.textAlign = 'center';
_ControlUI.title = 'Click to filter by Sectors';
controlDiv.appendChild(_ControlUI);
// Set CSS for the control interior.
var _ControlText = document.createElement('div');
_ControlText.style.color = 'rgb(25,25,25)';
_ControlText.style.fontFamily = 'Roboto,Arial,sans-serif';
_ControlText.style.fontSize = '12px';
_ControlText.style.lineHeight = '38px';
_ControlText.style.paddingLeft = '5px';
_ControlText.style.paddingRight = '5px';
_ControlText.innerHTML = '<strong>View by Sectors</strong>';
_ControlUI.appendChild(_ControlText);
// Setup the click event listeners, also calls Sectors page on a new window
google.maps.event.addDomListener(_ControlUI, 'click', function() {
//add code here to redirect to Sectors page
var _Window = window.open('/mvc/Sectors', '__blank');
_Window.focus();
});
}
SectorController.java
package com.spring.mvc;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.spring.dao.impl.SectorDAOImpl;
import com.spring.model.Sector;
@Controller
public class SectorController {
private static final Logger logger = LoggerFactory.getLogger(SectorController.class);
@RequestMapping(value = "/Sectors", method = {RequestMethod.HEAD, RequestMethod.GET})
public ModelAndView DisplaySectors(Locale locale, Model model) {
logger.info("Welcome home! You are in: {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate);
SectorDAOImpl _SectorDAOImpl = new SectorDAOImpl();
List<Sector> _Sectors = _SectorDAOImpl.GetByID();
List<String> _SectorNames = new ArrayList<String>();
for(Sector sector : _Sectors) {
_SectorNames.add(sector.getSectorName());
}
ModelAndView _ModelAndView = new ModelAndView("Sectors");
_ModelAndView.addObject("Sectors", _SectorNames);
return _ModelAndView;
}
}
Düğmenin isteği sayfaya yönlendirdiği kodu da gönderebilir misiniz lütfen? Ayrıca proje yapınız ile bir resim yayınlayabilirsiniz – Jessai
Yeni sayfa isteyen JavaScript kodu gönderildi. Ayrıca, yukarıdaki sorudaki proje yapısının bir görüntüsüne bir bağlantı da gönderdim, burada referans için bağlantı: http://imgur.com/WhOuzJB. Teşekkürler. –
Bu satırda: var _Window = window.open ('/ mvc/Sectors', '__blank'); Neden "/ mvc /" ile önekliyorsunuz? Bu senin proje ismin mi? – Jessai