Java 将数据保存到服务器
对不起,如果我的问题很简单-服务器把我弄糊涂了 我目前正在编写一个java程序,生成一个文件,稍后我将读取并解析该文件。我在本地机器上都可以使用它,但当我将它部署到web上时,会出现问题 这个问题建议正确的方法是使用request.getServletContext().getRealPath(“/”) 然而,由于我的代码没有扩展/实现Servlet或HttpServletRequest(我想我不希望他们这样做?) 正确的方法是什么 这真的会让人欲罢不能 我的代码:Java 将数据保存到服务器,java,linux,file-io,server,Java,Linux,File Io,Server,对不起,如果我的问题很简单-服务器把我弄糊涂了 我目前正在编写一个java程序,生成一个文件,稍后我将读取并解析该文件。我在本地机器上都可以使用它,但当我将它部署到web上时,会出现问题 这个问题建议正确的方法是使用request.getServletContext().getRealPath(“/”) 然而,由于我的代码没有扩展/实现Servlet或HttpServletRequest(我想我不希望他们这样做?) 正确的方法是什么 这真的会让人欲罢不能 我的代码: @Path("/circl
@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;
}
}
@Path(“/circleRoute”)
公共类通告{
@得到
@生成(“应用程序/xml”)
公共字符串routeAsXML(){
返回“”;
}
@路径(“{distance}/{lat}/{lon}/{angle}”)
@得到
@生成(“应用程序/xml”)
公共字符串routeAsXML(@PathParam(“lat”)双lat,
@PathParam(“lon”)双lon,
@PathParam(“距离”)双倍距离,
@路径参数(“角度”)整数角度){
试一试{
搜索生成数据(纬度、经度);
}捕获(IOE异常){
//TODO自动生成的捕捉块
System.out.println(“无法生成数据”);
e、 printStackTrace();
}
////////这是我想修的重要线路//////////////////////////
搜索=新搜索(新
文件(System.getProperty(“user.home”),“route.xml”);
//////////////////////////////////////////////////////////////////////////
长启动=search.findClosestNode(lat,lon);
MyNode startNode=search.getParse().getAllNodes().get(开始);
search.setStartNode(startNode);
BoyleHawesCycle routeCreator=新的BoyleHawesCycle(startNode,
search.getParse(),距离,角度);
getCircularPoints();
字符串toReturn=“”;
而(!routeCreator.route.isEmpty()){
SearchNode next=routeCreator.route.poll();
toReturn+=(“”+next.getLat()+“”
+next.getLon()+“”);
}
返回+=“”+routeCreator.getRouteLength()+“”;
返回+=(“”);
系统输出打印项次(toReturn);
回归回归;
}
}
为什么要将其保存到文件中?通常,您希望将响应流式传输到客户端。什么是搜索
?这是我实现的自定义搜索算法。我这样做,然后用xml打印出来,然后我的应用程序解析xml。这还不能解释为什么要将它保存到文件中。。。另外,将它打印成xml然后解析那个xml对我来说是多余的。我很乐意接受关于更好方法的任何建议。我基本上下载了一段地图数据来进行搜索(这里是route.xml)。打印它,我的应用程序就可以使用它了。您可以看到这里生成了什么,让我们看看类搜索
。我的猜测是,正如我在第一篇评论中所说的,可以对使用流进行简单的重新考虑。