2012-03-23 5 views
1

나는 Netbeans과 Glassfish 서버를 사용하여 Spring 3.0 웹 애플리케이션을 작업 해왔다. 이제 Glassfish에서 Tomcat으로 옮기기 위해 오류가 발생했습니다. 공개 애플리케이션 용으로 배포해야하는 시점입니다. 내 응용 프로그램은 응용 프로그램 내 URL에서 정보를 잡기 위해 AJAX를 사용하지만 URL을 요청할 때 나는 다음과 같은 얻을 :Glassfish에서 Tomcat으로 이동하기

이 요구에 의해 식별되는 자원은 요청에 따라 특성과 응답을 생성 만 할 수없는 허용 "accept"헤더(). 그렇게 같은 외모를 요청하는 내용

내 컨트롤러 :

@RequestMapping(value = "/electricity/usage/") 
public @ResponseBody List<UsageData> getEUsage(HttpSession session) { 

    UsageDataDAO UsageDAO = new UsageDataDAO(); 

    User u = (User) session.getAttribute("user"); 

    List<UsageData> l = UsageDAO.getAllUsageData(u.getAccountNum(), 'e'); 

    return l; 
} 

내가 톰캣에 마이그레이션 할 때 왜 이런 일이?

+0

예외 사항? 응용 프로그램이 전혀 시작되지 않았습니까? – Ralph

+0

예 응용 프로그램은 일부 JSON 데이터를 가져 오기 위해 요청한 URL을 제외하고 모두 작동합니다. –

+0

[해당되는 경우] (http://stackoverflow.com/questions/2828968/mapping-restful-ajax-requests-to-spring) 상황을 참조하십시오. –

답변

0

이 오류가 발생하기 때문에 귀하의 브라우저가 서버에 보내는 당신이 jQuery를 같은 라이브러리를 사용하는 경우 "동의"헤더는 서버/URL을/전기/사용에서

을 반환 할 수 있습니다 일치하지 않습니다 (및 NOT은 다음 브라우저는이 헤더를 받아 보낼 것)이 중요하다, 크로스 도메인를 요청하고 :

수락 : 응용 프로그램/JSON

당신이 오류가 서버가 생각하지 않는다는 것을 의미 점점 URL/electicity/usage는 JSON 응답을 반환 할 수 있습니다. 이 파일은 webmvc-config.xml 파일에서 구성됩니다. 그 좋은입니다 -이 코드는 글래스 피시에서 작동 왜 http://rwehner.wordpress.com/2010/06/09/2-ways-to-create-json-response-for-ajax-request-in-spring3/

,하지만 톰캣 :

<!-- allows rendering responses in XML and JSON formats --> 
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1"> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="xml" value="application/xml"/> 
      <entry key="json" value="application/json"/> 
     </map> 
    </property> 
    <property name="defaultViews"> 
     <list> 
      <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> 
       <property name="marshaller"> 
        <bean class="org.springframework.oxm.xstream.XStreamMarshaller" p:autodetectAnnotations="true"/> 
       </property> 
      </bean> 
      <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/> 
     </list> 
    </property> 
</bean> 

이 스프링 MVC에서 JSON 응답을 구현하기위한 자습서를 참조하십시오 : 이것은 내가 JSON 요청에 관련된 광산이 무엇 질문 ...

크로스 도메인 요청을 수행하는 경우,이 항목이 적용 JQuery's getJSON() not setting Accept header correctly?

+0

그건 그냥 문제 야. 내가 잘못 설정 한 어떤 증거도 없습니다. 링크에서와 마찬가지로 @responsebody 처리기를 사용하고 있습니다. 이 코드는 glassfish에서 완벽하게 작동하지만 Tomcat에서 오류가 발생합니다. –

+0

이 문서가 도움이됩니까? http://www.gotoquiz.com/web-coding/programming/java-programming/jsonajax-in-spring-mvc/ – anton1980

+0

또한 FF로 Firebug를 사용하여 브라우저에 Accept : application/json 헤더가 있는지 확인합니다. 이 AJAX 요청을 할 때. 그렇다면 문제는 응용 프로그램/웹 사이트/응용 프로그램/응용 프로그램/응용 프로그램/json 콘텐츠 유형을 반환해야한다는 것을 모르는 응용 프로그램 구성 문제인지 확인할 수 있습니다. – anton1980

관련 문제