MarkLogic:没有要写的流

时间:2018-02-12 23:51:47

标签: java xml marklogic

我有一个问题,我有一个方法从AngularJs前端获取参数,用它们创建一个对象,将对象作为XML文件写入文件夹,然后应该编写该XML将文件存入MarkLogic数据库。

但是,它应该写入数据库的部分看起来好像文件不存在,即使它确实存在:

以下是代码:

rates_food_x = [(row[0], row[1]) for index,row in 
try_impression_surface_rates_food.iterrows()]

rates_food_y = try_impression_surface_rates_food.loc[:,'rate'].tolist()


source_sr_food = ColumnDataSource(data=dict(x=rates_food_x, y=rates_food_y))

chart_sr_food = figure(x_range=FactorRange(*rates_food_x),
          plot_width=400, plot_height=350, tools=[hover_sr_food],
          title='Impression Distribution by Surface - Food')

chart_sr_food.left[0].formatter.use_scientific = False

chart_sr_food.yaxis.axis_label = "Distribution %" 

chart_sr_food.xaxis.axis_label = "Surface"

chart_sr_food.yaxis[0].formatter = PrintfTickFormatter(format="%0.0f %%")

chart_sr_food.legend.orientation = "horizontal"

chart_sr_food.legend.location = "top_center"

chart_sr_food.xaxis.major_label_orientation = 'vertical'



chart_sr_food.vbar(x='x', top='y', source=source_sr_food, width=0.6, 
               fill_color=factor_cmap('x', palette=Spectral6, 
                    factors=list(set(try_impression_surface_rates_food['var'])), start=1, end=2))



show(chart_sr_food)

2 个答案:

答案 0 :(得分:2)

几个问题。

  • 首先,您写入的文件与您阅读的文件不同。您正在写入“src / main / resources / data / korisnici / ..”,它相对于JVM(应用程序服务器)的当前目录。您正在从类路径资源目录中读取 - 不太可能是相同的。您可以简单地重复使用相同的File对象,然后它们将是相同的。

  • 其次,您不需要将这个小对象写入磁盘,只需将其写入内存中的流(如ByteArrayStream())即可。

答案 1 :(得分:0)

听起来好像类加载器没有找到你的文件。

如果您已经有一个刚刚编写的File对象,为什么不从它构造InputStream,而不是尝试从不同构造的相对路径中找到它?

InputStream docStream = new FileInputStream(f);