GWT Servern hittar inte fil
Jag försöker skriva ett GWT-program som ska läsa in en fil på serversidan och skicka en array till klientdelen av programmet men när jag försöker läsa filen får jag 404-meddelanden istället.
De involverade klasserna är:
MyFileReadService.java
package com.statistik.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
public interface MyFileReadService extends RemoteService{
public BrottStatistik[] Load(String filename);
}
MyFileReadServiceAsyn.java
package com.statistik.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface MyFileReadServiceAsync {
public void Load(String filename, AsyncCallback<BrottStatistik[]> callback);
}
LoadFile.java
package com.statistik.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import com.statistik.client.BrottStatistik;
import com.statistik.client.MyFileReadService;
public class LoadFile extends RemoteServiceServlet implements MyFileReadService{
public BrottStatistik[] Load(String filename){
try {
File file = new File(filename);
Scanner scanner = new Scanner(file);
String row = scanner.nextLine();
int charCount = row.replaceAll("[^;]", "").length();
charCount--;
BrottStatistik[] entries = new BrottStatistik[charCount];
for(int i = 0; i < charCount; i++){
entries[i].setar(scanner.nextInt());
}
scanner.nextLine();
scanner.nextLine();
for(int i = 0; i < charCount; i++){
entries[i].setDodligtVald(scanner.nextInt());
}
for(int i = 0; i < charCount; i++){
entries[i].setMordforsok(scanner.nextInt());
}
for(int i = 0; i < charCount; i++){
entries[i].setMisshandel(scanner.nextInt());
}
for(int i = 0; i < charCount; i++){
entries[i].setValdtakt(scanner.nextInt());
}
for(int i = 0; i < charCount; i++){
entries[i].setValdTjansteman(scanner.nextInt());
}
for(int i = 0; i < charCount; i++){
entries[i].setRan(scanner.nextInt());
}
scanner.close();
return entries;
} catch (FileNotFoundException e) {
} catch(NumberFormatException e) {
}
return null;
}
}
BrottStatistik.java
package com.statistik.client;
import java.io.Serializable;
public class BrottStatistik implements Serializable{
private int ar;
private int dodligtVald;
private int mordforsok;
private int misshandel;
private int valdtakt;
private int valdTjansteman;
private int ran;
public BrottStatistik() {
}
public BrottStatistik(int ar, int dodligtVald, int mordForsok,
int misshandel, int valdtakt, int valdTjansteman, int ran) {
this.ar = ar;
this.dodligtVald = dodligtVald;
this.mordforsok = mordForsok;
this.misshandel = misshandel;
this.valdtakt = valdtakt;
this.valdTjansteman = valdTjansteman;
this.ran = ran;
}
public int getar() {
return ar;
}
public void setar(int ar) {
this.ar = ar;
}
public int getDodligtVald() {
return dodligtVald;
}
public void setDodligtVald(int dodligtVald) {
this.dodligtVald = dodligtVald;
}
public int getMordforsok() {
return mordforsok;
}
public void setMordforsok(int mordforsok) {
this.mordforsok = mordforsok;
}
public int getMisshandel() {
return misshandel;
}
public void setMisshandel(int misshandel) {
this.misshandel = misshandel;
}
public int getValdtakt() {
return valdtakt;
}
public void setValdtakt(int valdtakt) {
this.valdtakt = valdtakt;
}
public int getValdTjansteman() {
return valdTjansteman;
}
public void setValdTjansteman(int valdTjansteman) {
this.valdTjansteman = valdTjansteman;
}
public int getRan() {
return ran;
}
public void setRan(int ran) {
this.ran = ran;
}
}
Filen jag vill läsa in är sokning.txt som jag har lagt kopior på i projektroten, i war och com.statistik.
I huvudprogrammet kör jag
MyFileReadServiceAsync fileLoad = GWT.create(MyFileReadService.class);
fileLoad.Load("sokning.txt", new AsyncCallback<BrottStatistik[]>() {
public void onFailure(Throwable caught) {
GWT.log(caught.getLocalizedMessage(), null);
}
public void onSuccess(BrottStatistik[] result) {
for(int i = 0; i < result.length; i++){
updateTable(result[i]);
}
lastUpdatedLabel.setText("Last update : "
+ DateTimeFormat.getMediumDateTimeFormat().format(new Date()));
}});
I loggen får jag 404 <html>
Jag har provat med att använda GWT.getHostPageBaseURL() utan resultat.