Java web应用程序:将txt文件存储在linux web服务器的windows服务器共享上

Java web应用程序:将txt文件存储在linux web服务器的windows服务器共享上,java,linux,web-applications,fileserver,Java,Linux,Web Applications,Fileserver,我有一个java类,用于从web应用程序创建文本文件。我正在使用以下代码: private void CreatePaymentFile(String QueryCriteria) { BigDecimal TotalPay; DecimalFormat df2 = new DecimalFormat("00000"); String RecordString = null; try{ String fileName = "\\\\fileandprint\\Apps\\Jury\\SHARE\

我有一个java类,用于从web应用程序创建文本文件。我正在使用以下代码:

private void CreatePaymentFile(String QueryCriteria) {
BigDecimal TotalPay;
DecimalFormat df2 = new DecimalFormat("00000");
String RecordString = null;
try{
String fileName = "\\\\fileandprint\\Apps\\Jury\\SHARE\\Payment_" + shortdateToday + SeqID + "24400.txt";
File f = new File(fileName);
FileOutputStream fop = new FileOutputStream(f);
SetPaymentFileName("Payment_" + shortdateToday + SeqID + "24400.txt");
FileWriter PaymentStream = new FileWriter(fileName,true);
BufferedWriter out = new BufferedWriter(PaymentStream);

// TODO Auto-generated method stub
String RecordStringFormat = "%-220s%-3s%-4s%-3s%-5s%-5s%-5s%-5s%-30s%-287s%-10s%-150s%-1s%-30s%-1s%-80s%-10s%-6s%-6s%-10s%-20s%-5s%-12s%-43s%-2s%-10s%-70s%-3s%-1s%-1s%-10s%-4s%-6s%-10s%-10s%-5s%27s";
JurorPayDetails JurorpayDetails = new JurorPayDetails();
ArrayList<JurorPayDetails.JurorPayDetailsTable> JurorPayDetailsObjList = new ArrayList<JurorPayDetails.JurorPayDetailsTable>();
JurorpayDetails.setJurorPayDetailsSql("Select P.*, GroupAssignment, TermDateServed, LastName, FirstName, Street1, Street2, City, State, ZipCode, Mileage, PublicEmployee, PayTime, PayMiles from PayDetails P INNER JOIN Jurors J ON P.JurorID = J.JurorID INNER JOIN Address A ON J.JurorID = A.JurorID where AddressType = 'M' and J.TermDateServed IN (" + QueryCriteria +") ORDER BY GroupAssignment, LastName");
boolean indicator = JurorpayDetails.setListOfJurorPayDetails();

if (indicator == true)
{
int size = JurorpayDetails.getListSize();
JurorPayDetailsObjList = JurorpayDetails.getJurorPayDetailsList();
for (int i=0; i<size; ++i){
JurorPayDetails.JurorPayDetailsTable eachPayable = JurorPayDetails.JurorPayDetailsTable)JurorPayDetailsObjList.get(i);
TotalPay = eachPayable.HoursAmount.add(eachPayable.MilesAmount);
RecordString = String.format(RecordStringFormat, ((eachPayable.Street1.trim() + " " + eachPayable.Street2.trim()).trim()), "1","B","1","WFB10","00000","21801","21801",eachPayable.City,"",longdateToday,"", "N", "21801_" + eachPayable.JurorID,"N",((eachPayable.FirstName.trim() + " " + eachPayable.LastName.trim()).trim()),"",    "PYMTLD","0",longdateToday,"21801" + shortdateToday + SeqID,df2.format(i + 1),eachPayable.Zipcode,"","RE","0","","CHK","N", "Y",longdateToday,"PYMT",eachPayable.State, "","001","01200",Paymentdf.format(TotalPay));
out.append(RecordString);
out.newLine();
}
out.close();
}
}catch (Exception e) {
System.err.println("error: " + e.getMessage());
}
}
private void CreatePaymentFile(字符串QueryCriteria){
工资总额大;
DecimalFormat df2=新的DecimalFormat(“00000”);
String RecordString=null;
试一试{
String fileName=“\\\\fileandprint\\Apps\\Jury\\SHARE\\Payment\\uu”+shortdateToday+SeqID+“24400.txt”;
文件f=新文件(文件名);
FileOutputStream fop=新的FileOutputStream(f);
SetPaymentFileName(“Payment_”+shortdateToday+SeqID+“24400.txt”);
FileWriter PaymentStream=新FileWriter(文件名,true);
BufferedWriter out=新的BufferedWriter(PaymentStream);
//TODO自动生成的方法存根
字符串记录StringFormat=“%-220s%-3s%-4s%-3s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-5s%-287s%-10s%-150s%-1s%-1s%-80s%-10s%-10s%-6s%-10s%-10s%-5s%27s”;
JurorPayDetails JurorPayDetails=新的JurorPayDetails();
ArrayList JurorPayDetailsObjList=新建ArrayList();
JurorpayDetails.setJurorPayDetailsSql(“选择P.*,GroupAssignment,TermDateServed,LastName,FirstName,Street1,Street2,City,State,ZipCode,里程,PublicEmployee,PayTime,PayMiles-from-PayDetails P-INNER-Journers J ON P.JurorID=J.JurorID=A.JurorID-INNER-Jororid地址A,其中AddressType='M'和J.TermDateServed在(”+QueryCriteria+”)按组分配的订单,姓氏“);
布尔指示符=JurorpayDetails.setListOfJurorPayDetails();
如果(指示符==真)
{
int size=JurorpayDetails.getListSize();
JurorPayDetailsObjList=JurorpayDetails.getJurorPayDetailsList();

对于(int i=0;i,您需要显式地将网络共享装载到本地目录中。有关如何执行此操作的说明,请参阅

直接访问网络共享在Gnome和KDE文件管理器中起作用,因为它们本身应用了一些魔法。在操作系统级别上,这些路径并不存在

如果这不能解决问题,请附加异常输出。您可以更改

System.err.println("error: " + e.getMessage());


这将包括消息之外的异常名称和stacktrace。这尤其有用,因为消息可能为空,并且您可以很容易地看到异常发生在代码的哪一行。

如果您的意思是需要从Linux PC访问Windows网络共享,那么已经完成了。我可以使用TightVNC进入Linux框,打开文件系统,在Linux网络共享上查看文件和打印。您是如何“打开文件系统”的?我这样问是因为许多与gname/kde相关的程序可以直接访问网络共享,尽管java不能。我与root用户一起登录Linux框。我从桌面打开root的主页,这就可以访问文件浏览器。从那里我单击网络服务器……从那里我可以看到文件和打印服务器并访问网络。我相信eve表示,我们已经找到了一种使用Jitterbit Windows服务器创建和移动文档的解决方案。这正是我所说的不可比较的测试用例。文件浏览器向您展示了操作系统所不知道的东西。但您找到了另一种解决方案,这很好。
err.printStackTrace();