Java 使用REST时角度js中出现500内部服务器错误

Java 使用REST时角度js中出现500内部服务器错误,java,angularjs,rest,Java,Angularjs,Rest,大家好,这个问题让我头疼,希望我能得到一些帮助 我的问题:-我正在为前端使用angular js,并使用rest api将其连接到后端。在我的文章中,angular js中的一些部分,或者我们可以说一些html页面,我能够成功地获取,但是只有一个html页面或部分,GET显示的是内部服务器错误500。我尝试在我的浏览器中调试,并根据angular.js显示。 -获取本地主机:8080/mytracker/getDeviceList.do 500内部服务器错误- 困惑:-我的困惑是angular

大家好,这个问题让我头疼,希望我能得到一些帮助

我的问题:-我正在为前端使用angular js,并使用rest api将其连接到后端。在我的文章中,angular js中的一些部分,或者我们可以说一些html页面,我能够成功地获取,但是只有一个html页面或部分,GET显示的是内部服务器错误500。我尝试在我的浏览器中调试,并根据angular.js显示。 -获取本地主机:8080/mytracker/getDeviceList.do 500内部服务器错误-

困惑:-我的困惑是angular js代码或我在spring中编写的rest api代码中存在问题。这是因为我以文本/html格式获取数据。对于其他html页面,我可以在application/json中获取。我的后端可能存在什么问题

发布我的后端代码:-

DeviceController.java->

@Controller
public class DeviceController {

@Autowired DeviceDAO deviceDAO;

@RequestMapping(value="/getDeviceList",method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody List<DeviceForm> getdevice()
{
    List<DeviceForm> deviceForms=new ArrayList<DeviceForm>();
    List<Device> devices= deviceDAO.getAllDevices();
    for(Device device:devices)
    {
        DeviceForm deviceForm= new DeviceForm();
        deviceForm.setDeviceNumber(device.getDeviceNo());
        deviceForm.setDeviceId(device.getDeviceId());
        deviceForm.setPurchaseDate(device.getPurchaseData().toString());
        deviceForm.setExpiryDate(device.getExpiryDate().toString());
        deviceForm.setClientId(device.getDeviceClienid());

        deviceForms.add(deviceForm);
    }
    return deviceForms; 
}
}

我在angular fronted中使用这些rest类,使用在angular控制器中编写的代码,如下所示:->

我的完整跟踪是:-


希望得到建议

信息非常清楚

在getdevice方法中有一个NPE:

java.lang.NullPointerException
at com.dataisys.mytracker.web.controller.DeviceController.getdevice(DeviceController.java:44)

看起来deviceDAO为null。

之所以发生这种情况,是因为您从getExpiryDate获得的结果为null。因此,请确保从中获取数据的数据库表中的列不为null。然后我想一切都会好起来。

把整个stacktraceok兄弟放进去,我添加了stacktraceYour stack trace,在com.dataisys.mytracker.web.controller.DeviceController.GetDeviceController.java:44上显示java.lang.NullPointerException。您能告诉我们DeviceController.java第44行是什么吗?那么是不是因为这个异常,我得到了内部服务器错误500?是的,或者deviceDao.getAllDevices返回null。@BenzoR是一个异常导致服务器错误500。@bigdestroyer:我编辑并提交了deviceDao自动连线的完整代码,它解决了问题吗?@BenzoR你必须找出NPE的原因,然后知道你必须做什么。
private double deviceId;
private String purchaseDate;
private String warrantyPeriod;
private String warEndDate;
private String clientId;
private String warrantedDays;
private String warStartDate;
private String warranty;
private String deviceNumber;
private String expiryDate;
private long vehicleId;
private String deviceStatus;


public double getDeviceId() {
    return deviceId;
}
public void setDeviceId(double deviceId) {
    this.deviceId = deviceId;
}
public long getVehicleId() {
    return vehicleId;
}
public void setVehicleId(long vehicleId) {
    this.vehicleId = vehicleId;
}
public String getExpiryDate() {
    return expiryDate;
}
public void setExpiryDate(String expiryDate) {
    this.expiryDate = expiryDate;
}
public String getDeviceNumber() {
    return deviceNumber;
}
public void setDeviceNumber(String deviceNumber) {
    this.deviceNumber = deviceNumber;
}
public String getWarranty() {
    return warranty;
}
public void setWarranty(String warranty) {
    this.warranty = warranty;
}

public String getPurchaseDate() {
    return purchaseDate;
}
public void setPurchaseDate(String purchaseDate) {
    this.purchaseDate = purchaseDate;
}
public String getWarrantyPeriod() {
    return warrantyPeriod;
}
public void setWarrantyPeriod(String warrantyPeriod) {
    this.warrantyPeriod = warrantyPeriod;
}
public String getWarEndDate() {
    return warEndDate;
}
public void setWarEndDate(String warEndDate) {
    this.warEndDate = warEndDate;
}

public String getWarrantedDays() {
    return warrantedDays;
}
public void setWarrantedDays(String warrantedDays) {
    this.warrantedDays = warrantedDays;
}
public String getWarStartDate() {
    return warStartDate;
}
public void setWarStartDate(String warStartDate) {
    this.warStartDate = warStartDate;
}
public String getClientId() {
    return clientId;
}
public void setClientId(String clientId) {
    this.clientId = clientId;
}
myApp.controller("DeviceManagementController",['$scope','$http',function($scope,$http){ 
$scope.gridOptions = {
        pagingPageSizes: [25, 50, 75],
        pagingPageSize: 25,
        columnDefs: [
                    { name: 'deviceId' },
                    { name: 'deviceNumber' },
                    { name: 'purchaseDate' },
                    { name: 'expiryDate' }
        ],



 $http.get('http://localhost:8080/mytracker/getDeviceList.do')
  .success(function (data) {
    $scope.gridOptions.data = data;
  });

}]);
Jan 12, 2015 5:11:15 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [mytracker] in context with path [/mytracker] threw       exception [Request processing failed; nested exception is java.lang.NullPointerException] with root    cause
java.lang.NullPointerException
at com.dataisys.mytracker.web.controller.DeviceController.getdevice(DeviceController.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at     org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at     org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at     org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodA    dapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at com.dataisys.mytracker.web.controller.DeviceController.getdevice(DeviceController.java:44)