我有一台Linux服务器,我在Java上为我服务器上的多个网站运行图像大小调整作业.网站文件归不同的OS用户/组所有.新创建的缩略图/预览由运行调整大小作业的用户拥有.现在,我正在调整如何在我的调整大小程序中更改新创建的预览/缩略图的文件所有者,并发现了这个:
java.nio.file.Files.setOwner(Path path, UserPrincipal owner);
Run Code Online (Sandbox Code Playgroud)
如果它是Windows,这将真正解决我的问题,但由于Linux文件有一个用户和一个组作为所有者我有点麻烦.不幸的是,给定的方法似乎只改变了文件的用户所有权.组所有权保留在运行Java调整大小作业的用户组中.
这些网站由不同的群组拥有,因此将我的调整大小作业用户添加到一个群组是不可取的.我还想避免系统调用ProcessBuilder和执行chown我的文件.
我需要指出创建的文件(预览/缩略图)可以通过网站访问,更改组所有权并不是关键任务,但我希望它尽可能干净.
有关如何仅使用Java更改Linux中文件的组所有权的任何建议?
所以我有以下问题:我在Linux上的Tomcat7服务器内运行了一个Web服务.但是,Web服务必须执行一些命令(主要是文件操作,如复制和挂载).复制我已经用java.nio替换了,但我认为没有替代品mount.
所以我试图从我的Tomcat Java进程中执行shell命令.不幸的是它没有执行我的命令.我以前在Java中实现了shell命令的执行.所以我的代码应该是正确的:
Process pr = Runtime.getRuntime().exec("mount -o loop -t iso9660 <myimage> <mymountpoint>");
pr.waitFor();
Run Code Online (Sandbox Code Playgroud)
<myimage>并且<mymountpoint>是绝对路径,所以也没有问题.
id和pwd正在工作!/bin/bash -c "<command>",但是没用.所以我挖得更深,现在我怀疑一些Tomcat安全策略(Sandbox?),这阻止我执行命令.由于安全性对我来说没有问题(它是一个内部系统,与外部世界完全隔离),我尝试了一个黑客,它最近变得非常流行:
System.setSecurityManager(null);
Run Code Online (Sandbox Code Playgroud)
这也不起作用.我在RHEL6上使用Java7和Tomcat7.Tomcat7刚刚被提取出来!我在/ etc/..或/ opt/tomcat /之外的任何其他文件夹中没有任何文件,我从Tomcat主页中提取了zip.我在/ opt/tomcat/conf文件夹中搜索了安全设置,但我找到的只是文件catalina.policy,它似乎不能为shell命令设置一些安全级别.
有任何想法吗?
我有一个XSD描述了一些复杂类型的序列,例如
<xs:complexType name="Catalog">
<xs:sequence>
<xs:element name="Category" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="ParentCategoryIDRef"/>
<xs:element type="xs:string" name="Method"/>
</xs:sequence>
<xs:complexType>
</xs:element>
</xs:sequence>
<xs:complexType>
Run Code Online (Sandbox Code Playgroud)
现在,当我使用JaxBs XJC将其转换为Java类时,它将java.util.List在我的Catalog类中生成一个字段和getter/setter Category.
但是,在使用java2wsdl的Axis2 Web服务中使用它需要的是Arrays之类的Category[].
我对JaxB绑定有点熟悉,并且已经尝试使用以下方法指定集合类型:
<jaxb:property collectionType="Category[]"/>
Run Code Online (Sandbox Code Playgroud)
导致代码无效,因为它仍然使用a java.util.List,但带有构造函数new Category[]<Category>.
当然,我总是可以在生成后编辑生成的代码,但是当我尝试重新生成代码时,这会导致问题.
我现在得到的是:
public class Catalog {
@XmlElement(name = "Category")
protected List<Category> category;
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
public class Catalog {
@XmlElement(name = "Category")
protected Category[] category;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我目前正在使用XJC 2.2.6和Axis2 1.6.2.
我可以直接进入我的ubuntu盒子,我已经scp将我的应用程序的da版本放到了服务器上,但是当我运行时
scp MaryBaked.tar.gz root@marybakedpdx.com:/home/marybakedpdx
甚至
scp MaryBaked.tar.gz root@marybakedpdx.com:~
scp的进度上升到81%,然后过程说stalled,我得到了
仪式失败:管道破裂失去连接
编辑
root @marybakedpdx:/ home/marybakedpdx #df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/vda1 ext4 30830588 2906508 26334944 10% /
none tmpfs 4 0 4 0% /sys/fs/cgroup
udev devtmpfs 498088 4 498084 1% /dev
tmpfs tmpfs 101788 356 101432 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 508940 0 508940 0% /run/shm
none tmpfs 102400 0 102400 0% /run/user
Run Code Online (Sandbox Code Playgroud) 所以我有一个ColumnChart,其中一个内置功能是你可以将鼠标悬停在图表图例中的一个项目(所谓的类别)上,并在图表中的相应列周围找到一些高亮边框.
现在我的图表中有很多列和类别,很难看到突出显示的系列/类别,因为默认行为只是在列周围显示1px灰色边框.我的列只有几个像素的宽度,我仍然需要区分10个不同的类别(=颜色).因此,选择非常浅的颜色(边框很容易被发现)是不可取的.我发现无法改变:
是否有一些属性可以传递给draw()我的图表调用以更改突出显示?我是否必须手动覆盖某些事件/方法?
非常感谢帮助!
我正在使用C3图表库,我指定了一个显示货币价值的图表.金钱价值都是>= 0.
现在,如果我的图形值介于15.000和20.000之间,则y轴仅显示粗略的域[13.000 - 22.000].
相反,我希望它展示的那个例子[0 - 22.000].
我的想法是使用axis: { y: { min : 0 }}几乎起作用的财产.现在我的问题是0是x轴上方几个像素,这意味着根据比例我当然得到类似的东西[-2.000 - 22.000].
我可以以某种方式强制完全避免负值吗?
c3.generate({
...
axis : {
y : {
tick : {
format: d3.format("$,")
},
min : 0
},
...
}
});
Run Code Online (Sandbox Code Playgroud)