对不起,如果我的问题很简单 - 服务器让我迷惑不解!
我目前正在编写一个生成文件的java程序,我稍后会阅读并解析该文件。我把它全部用在我的本地机器上,但是当我将它部署到网络上时会出现问题。
Can I save a file on server using FileOutputStream?
这个问题表明正确的方法是使用request.getServletContext()。getRealPath(“/”)
但是,因为我的代码没有扩展/实现Servlet或HttpServletRequest(我不认为我想要它们?)
这样做的正确方法是什么?
确实会提供指导。
我的代码:
@Path("/circleRoute")
public class circularRoute {
@GET
@Produces("application/xml")
public String routeAsXML() {
return "<GeneratedRoute> </GeneratedRoute>";
}
@Path("{distance}/{lat}/{lon}/{angle}")
@GET
@Produces("application/xml")
public String routeAsXML(@PathParam("lat") double lat,
@PathParam("lon") double lon,
@PathParam("distance") double distance,
@PathParam("angle") int angle) {
try {
Search.generateData(lat, lon);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Couldn't generate data");
e.printStackTrace();
}
////////This is the important line I want to fix//////////////////////////
Search search = new Search(new
File(System.getProperty("user.home"),"route.xml"));
//////////////////////////////////////////////////////////////////////////
long start = search.findClosestNode(lat, lon);
MyNode startNode = search.getParse().getAllNodes().get(start);
search.setStartNode(startNode);
BoyleHawesCycle routeCreator = new BoyleHawesCycle(startNode,
search.getParse(), distance, angle);
routeCreator.getCircularPoints();
String toReturn = "<GeneratedRoute>";
while (!routeCreator.route.isEmpty()) {
SearchNode next = routeCreator.route.poll();
toReturn += ("<Node><lat>" + next.getLat() + "</lat><lon>"
+ next.getLon() + "</lon></Node>");
}
toReturn += "<length>" + routeCreator.getRouteLength() + "</length>";
toReturn += ("</GeneratedRoute>");
System.out.println(toReturn);
return toReturn;
}
}