我开始研究Enterprise Java,我正在阅读的书中提到它将使用JBoss.Netbeans随Glassfish一起发货.我过去使用过Tomcat.
这三个项目有什么区别?
我正在写一个JACC提供者.
一路上,这意味着实施一个PolicyConfiguration.
的PolicyConfiguration是负责从应用服务器,接受配置信息,如哪些权限累积到哪些角色.这样,Policy以后可以在递交有关当前用户的信息以及他正在尝试做的事情时做出授权决定.
但是,它不是PolicyConfiguration维护角色及其权限之间映射的(合理的)合同的一部分Principals,而是分配给这些角色.
通常 - 总是,实际上 - 应用程序服务器容纳此映射.例如,Glassfish上,你通过影响供给像这样的东西映射sun-web.xml和sun-ejb-jar.xml等您的Java EE模块.(这些供应商特定的文件负责说,例如,superusers是一个将被分配应用程序角色的组admins.)
我想重用这些文件提供的功能,我希望尽可能广泛的应用程序服务器.
这是 - 完全随意 - IBM对此事的看法,这似乎证实了我怀疑我想要做的事情基本上是不可能的.(对于我的情况,更多的弹药,这个特定的Java EE合同不值得它打印的纸张.)
我的问题:我如何获得这个主要角色映射信息 - 对于初学者 - Glassfish和JBoss来自PolicyConfiguration?如果有一种我不知道的标准方法,那我就是耳朵.
如果您今天启动了一个新的Java EE项目,该项目将在大约一年内完成,您会选择哪个应用程序服务器?为什么?
你的部分答案应包括你的决定论据.您还可以选择使用Java EE服务器以及市场上其他可用服务器的经验.这些都很有趣,因为我们都对你的答案中的调查和思想有所了解.
我使用netbeans 6.7.1和glassfish v2.1编写了一个Web服务项目,将log4j.properties放到项目的根目录并使用:
static Logger logger = Logger.getLogger(MyClass.class);
Run Code Online (Sandbox Code Playgroud)
在构造函数中:
PropertyConfigurator.configure("log4j.properties");
Run Code Online (Sandbox Code Playgroud)
和功能:
logger.info("...");
logger.error("...");
// ...
Run Code Online (Sandbox Code Playgroud)
但是,它是错误信息(实际上,我试图将它几乎放在我能够实现的每个目录上):
log4j:ERROR Could not read configuration file [log4j.properties].
java.io.FileNotFoundException: log4j.properties (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
at com.corp.ors.demo.OrsDemo.main(OrisDemo.java:228)
log4j:ERROR Ignoring configuration file [log4j.properties].
log4j:WARN No appenders could be found for logger (com.corp.ors.demo.OrsDemo).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)
com.sun.jersey和之间有什么区别org.glassfish.jersey?
目前我有我的REST服务工作com.sun.jersey,我想编写测试,但我找不到一个很好的教程(似乎没有任何工作).但是,我可以找到关于org.glassfish.jersey测试的好文档.
对不起我在这里的无知,但是当我听到网络服务器这个词时,我立刻想到了Apache,虽然我知道人们也使用微软的IIS.但是因为我一直在Stackoverflow上闲逛,所以我注意到很多人都在使用Glassfish.
这让我想知道,为什么我要使用Glassfish(从某种意义上说我感兴趣,但我真的不明白它为什么会让我的生活变得更轻松).从我读到的是Sun的Apache的Tomcat的开源衍生产品,因此我认为它是一个好的(或伟大的)优质产品.但由于我不知道它的优点和缺点,我不知道何时选择Glassfish而不是其他服务器是明智的.有人可以详细说明吗?
在GF或Tomcat前面使用Apache Webserver是个好主意吗?它是否提高了性能/安全性?
或者没有任何理由将Apache Web Server与GF一起使用?
我一直在尝试从Glassfish AdminConsole部署我的Web应用程序(战争),但我不断收到以下错误消息 -
Exception while loading the app : Error in linking security policy for MyApp-war -- Inconsistent Module State.
Run Code Online (Sandbox Code Playgroud)
但是当我从Netbeans那里部署它时,它没有任何问题.(在部署应用程序之前,我不知道Netbeans是否正在做一些我缺少的事情.)
我也尝试使用最新版本的Glassfish(即V3.1.1(版本12)),我可以在AdminConsole中部署相同的应用程序而不会出现任何问题.
我正在使用Glassfish 3.1(build 43)和Netbeans 7.0.
在使用此版本的Glassfish部署我的应用程序之前,是否有任何安全策略设置?
作为Java EE生态系统的新手,我对这些共享大量关键字的产品感到困惑.其中一半来自Apache软件基金会.
有人可以给我一个简短的解释吗?
我有一个运行Jersey REST资源的Web服务器,我想知道如何获取浏览器img标签的image/png参考; 提交表单或获得Ajax响应后.用于添加图形的图像处理代码正常工作,只需要以某种方式返回它.
码:
@POST
@Path("{fullsize}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("image/png")
// Would need to replace void
public void getFullImage(@FormDataParam("photo") InputStream imageIS,
@FormDataParam("submit") String extra) {
BufferedImage image = ImageIO.read(imageIS);
// .... image processing
//.... image processing
return ImageIO. .. ?
}
Run Code Online (Sandbox Code Playgroud)
干杯