복붙노트

[SPRING] 오리진 서버는 대상 자원에 대한 현재 표현을 찾지 못했거나 공개하려고하지 않습니다. 바람둥이에 배치에

SPRING

오리진 서버는 대상 자원에 대한 현재 표현을 찾지 못했거나 공개하려고하지 않습니다. 바람둥이에 배치에

Eclipse IDE로 Spring을 사용하여 애플리케이션을 구축했다. 이클립스 IDE에서 프로젝트를 시작하면 모든 것이 잘되지만, war 파일로 maven 프로젝트를 패키징하고 별도의 tomcat에 배포하면이 문제가 발생한다.

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

이것은 내 XML 파일의 구성 조각입니다.

<!-- View Resolver -->
    <beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/pages/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

이 컨트롤러에 액세스하려고합니다.

@RequestMapping(value = {"/welcome", "/"})
    public String defaultPage() {
            return "Web Service data successfuly consumed";


    }

왜 이것이 바람둥이에 배치되지 못했을까요?

해결법

  1. ==============================

    1.나는이 문제로 여러 번 고심했다.

    나는이 문제로 여러 번 고심했다.

    내가 현재 사용하고있는 솔루션은 webapp (또는 jsp와 같은 뷰를 유지 한 폴더)의 날씨를 배포 어셈블리 아래에 배치하는 것입니다.

    프로젝트> 빌드 경로> 빌드 구성> 배포 어셈블리> 추가 (오른쪽)> 폴더> (jsp 폴더를 추가하십시오. 기본값은 src / main / webapp입니다)

    당신은 또한 모든 일을 정정 한 후에도이 오류를 얻을 수 있습니다. 그러나 JSP에서 낡은 태그를 앵커 태그에 넣습니다 (동일한 문제가있는 다른 사람을 도우면이 코드를 추가합니다).

    jsp에는 다음과 같은 구문이 있습니다. TakeMeToTheController 그리고 질문에서 언급 된 오류를 계속 보았습니다. 그러나 태그를 아래 표시된 것과 같이 변경하면 문제가 해결됩니다.

    <a href=" <spring:url value="/mappedpath" /> ">TakeMeToTheController</a>
    
  2. ==============================

    2.Spring Boot로 실행할 때 localhost : 8080 / hello / World를 사용하기가 쉽지만 이슈를 빌드하고 Tomcat에 배포 했으므로 다음과 같이 전환해야하기 때문에 Spring 부트 응용 프로그램에서 작업 할 때 동일한 오류가 발생했습니다. localhost 사용 : 8080 / / hello / World

    Spring Boot로 실행할 때 localhost : 8080 / hello / World를 사용하기가 쉽지만 이슈를 빌드하고 Tomcat에 배포 했으므로 다음과 같이 전환해야하기 때문에 Spring 부트 응용 프로그램에서 작업 할 때 동일한 오류가 발생했습니다. localhost 사용 : 8080 / / hello / World

  3. ==============================

    3.스프링 부트 애플리케이션을 개발하는 경우 다음 코드와 같이 "SpringBootServletInitializer"를 기본 파일에 추가하십시오. SpringBootServletInitializer가 없기 때문에 Tomcat은 일반적인 응용 프로그램으로 간주 할 것이므로 Spring 부트 응용 프로그램으로 간주하지 않을 것입니다

    스프링 부트 애플리케이션을 개발하는 경우 다음 코드와 같이 "SpringBootServletInitializer"를 기본 파일에 추가하십시오. SpringBootServletInitializer가 없기 때문에 Tomcat은 일반적인 응용 프로그램으로 간주 할 것이므로 Spring 부트 응용 프로그램으로 간주하지 않을 것입니다

    @SpringBootApplication
    public class DemoApplication extends *SpringBootServletInitializer*{
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
             return application.sources(DemoApplication .class);
        }
    
        public static void main(String[] args) {
             SpringApplication.run(DemoApplication .class, args);
        }
    }
    
  4. ==============================

    4.Eclipse에서 서블릿을 실행하려고합니다 (마우스 오른쪽 버튼 클릭 + "서버에서 실행"). 매우 동일한 문제가 발생했습니다 : "HTTP 상태 : 404 / 설명 : 원본 서버가 대상 리소스에 대한 현재 표현을 찾지 못했거나이를 공개하려고하지 않습니다." index.html을 추가해도 도움이되지 않았고 바람둥이의 다양한 설정도 변경되지 않았습니다.

    Eclipse에서 서블릿을 실행하려고합니다 (마우스 오른쪽 버튼 클릭 + "서버에서 실행"). 매우 동일한 문제가 발생했습니다 : "HTTP 상태 : 404 / 설명 : 원본 서버가 대상 리소스에 대한 현재 표현을 찾지 못했거나이를 공개하려고하지 않습니다." index.html을 추가해도 도움이되지 않았고 바람둥이의 다양한 설정도 변경되지 않았습니다.

    마지막으로, 예기치 않은 곳에서 문제가 발견되었습니다. Eclipse에서 Option "Build automatically"가 설정되지 않았습니다. 따라서 서블릿은 컴파일되지 않았으며 "myServlet.class"파일은 서버에 배포되지 않았습니다 (내 경우에는 .wtpwebapps / projectXX / WEB-INF / classes / XXpackage / 경로에 있음). 프로젝트를 수동으로 빌드하고 서버를 다시 시작하면 문제가 해결되었습니다.

    내 환경 : Eclipse Neon.3 릴리스 4.6.3, Tomcat 버전 8.5.14., OS Linux Mint 18.1.

  5. ==============================

    5.해결책 1 : 아파치 tomcat의 버전을 변경하십시오 (최신 프로세스가 선호됩니다) (수동 프로세스).

    해결책 1 : 아파치 tomcat의 버전을 변경하십시오 (최신 프로세스가 선호됩니다) (수동 프로세스).

    해결 방법 2 : 최신 Eclipse IDE를 설치하고 Apache Tomcat 서버를 구성합니다 (내부적으로 자동 프로세스 인 eclipse가 구성 부분을 처리 함).

    자동 프로세스의 성공적인 절차 후, 수동 프로세스가 잘 작동해야합니다.

  6. ==============================

    6.Eclipse에서 프로젝트 -> 실행하려고하면 자동으로 빌드를 클릭하십시오.

    Eclipse에서 프로젝트 -> 실행하려고하면 자동으로 빌드를 클릭하십시오.

  7. ==============================

    7.나도 같은 문제에 직면하고있다. 그리고 나는 web.xml 파일과 applicationcontext.xml 파일을 WEB-INF 폴더에 넣는다.

    나도 같은 문제에 직면하고있다. 그리고 나는 web.xml 파일과 applicationcontext.xml 파일을 WEB-INF 폴더에 넣는다.

    희망이 도움이 :)

  8. ==============================

    8.나는 똑같은 문제에 직면했다.

    나는 똑같은 문제에 직면했다.

    내가 오른쪽 클릭 -> 서버에서 실행 한 다음 수동으로 내 서버를 선택하면 성공했습니다.

    해야 할 것

    Alt+Shift+X
    

    그런 다음 서버를 수동으로 선택하십시오. 도움이 될지도 모릅니다.

  9. ==============================

    9./opt/apache-tomcat-8.5.37/conf/Catalina/localhost에서 geoexplorer.xml 파일을 작성하면 거의 동일한 문제가 해결됩니다. geoexplorer.xml 파일의 콘텐츠

    /opt/apache-tomcat-8.5.37/conf/Catalina/localhost에서 geoexplorer.xml 파일을 작성하면 거의 동일한 문제가 해결됩니다. geoexplorer.xml 파일의 콘텐츠

    <Context displayName="geoexplorer" docBase="/usr/share/opengeo/geoexplorer" path="/geoexplorer"/>
    
  10. ==============================

    10.그것이 Maven 프로젝트라면 Maven Update가 문제를 해결할 것입니다 - Project -> Maven -> Update Project를 오른쪽 클릭하고 프로젝트를 정상적으로 시작하십시오.

    그것이 Maven 프로젝트라면 Maven Update가 문제를 해결할 것입니다 - Project -> Maven -> Update Project를 오른쪽 클릭하고 프로젝트를 정상적으로 시작하십시오.

  11. from https://stackoverflow.com/questions/43590008/the-origin-server-did-not-find-a-current-representation-for-the-target-resource by cc-by-sa and MIT license