小编Mik*_*aun的帖子

Java EE入门

我即将开始一个网络项目,并且在过去的5年中几乎完全使用LAMP堆栈.我想构建更大,更可扩展的东西,因此一直在研究Java EE.JSP和EJB之间的逻辑划分似乎是我想要做的事情的理想选择.

任何人都可以推荐资源来熟悉Java EE吗?也许如果有人知道我可以考虑的比PHP更具可扩展性的技术,我会全力以赴.

非常感谢!

java-ee

22
推荐指数
2
解决办法
2万
查看次数

如何正确地向服务器验证AngularJS客户端

我正在构建一个使用RESTful API(Jersey)的AngularJS Web应用程序.

在服务器端,我使用的是Java Application Server(详见Glassfish 4).

我的设置如下:

  • AngularJS webapp作为单个war文件部署到Java EE应用程序服务器.
  • RESTfulAPI(和后端逻辑)也作为war文件部署到同一Java EE应用程序服务器.
  • AngularJS webapp调用REST API来获取所需的数据.
  • RESTful API:
    • /api/public/*对于公共不受限制的访问(例如/ api/public/users/signup注册为新用户).允许任何用户访问此区域.无需登录
    • /api/private/* 限制访问(例如/ api/private/account/{id}以检索某些帐户特定数据)
  • 私有资源受Java EE内部安全性概念的保护(有关web.xml的详细信息,请参阅下文).

在web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>PRIVATE REST API</web-resource-name>
        <url-pattern>/private/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>HEAD</http-method>
        <http-method>PUT</http-method>
        <http-method>OPTIONS</http-method>
        <http-method>TRACE</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <auth-constraint>
        <description>Have to be a USER</description>
        <role-name>USERS</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>userauth</realm-name>
</login-config>
<security-role>
    <description/>
    <role-name>USERS</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)

此设置适用于我,但仅限于我在浏览器中手动调用URL.如果我未经过身份验证并处理安全区域,则浏览器会要求输入用户名和密码.如果提供的凭证有效,我可以从那里访问限制区域:好.

但是我如何使用AngularJS呢?要登录,有一个POST API调用:/api/public/users/login您必须从表单(用户名和密码)提供凭据.

客户端代码是:

ctrls.controller('LoginController', function($scope, $http, $log, $location, UserService, RemoteServerHelperService) {
    $scope.loginDataWrong = undefined;
    $scope.login = function(credentials) {
    $http.post(RemoteServerHelperService.buildURL('/public/users/login'), …
Run Code Online (Sandbox Code Playgroud)

java authentication java-ee angularjs

15
推荐指数
1
解决办法
1万
查看次数

如何在不使用框架的情况下创建基于mvc的应用程序

Struts,Spring和一些其他框架实现了MVC架构,以将信息的表示与用户与其的交互分开.

任何人都可以在Java EE中解释或给我一个链接吗?

如果不使用框架,我如何创建MVC应用程序以及需要哪些设计模式?

java java-ee

9
推荐指数
1
解决办法
2万
查看次数

Flash范围是否没有竞争条件?

我发现JSF 2.0 Flash范围是通过cookie在Mojarra 2.x中实现的.似乎发生的情况是,当使用Flash从视图A导航到视图B时,JSF会发送重定向响应.这是包含set-cookie标头的相同响应.

由于cookie是浏览器的全局,我想知道这会导致竞争条件的可能性.由于在重定向响应期间设置了cookie,我试图找出HTTP规范是否以某种方式保证浏览器响应的请求始终是第一个使用此cookie的请求.

但是,一般情况下,如果第一个请求以某种方式停止(因为Internet决定将该特定请求路由到世界各地),则可能仍然存在问题,然后来自另一个选项卡的第二个请求首先到达服务器.

对于两页之间的闪存范围而言,使用cookie不是一个可怕的想法,或者我是否忽略了某些东西并且它是否非常安全?

java cookies redirect jsf-2 flash-scope

8
推荐指数
1
解决办法
585
查看次数

Java EE和Java SE类加载

我在互联网上阅读的Java EE和Java SE类加载的区别在于

在Java SE中,类加载器将类加载委托给其父类加载器,然后尝试加载类本身

但是,在Java EE中,类加载器首先尝试加载类本身,然后将该类的类加载委托给其父类加载器.

请证实我的理解.

另外,为什么它的设计与Java EE中的设计相同(保持这种优势的任何优点.)

这是我听到的链接[http://www.youtube.com/watch?v=t8sQw3pGJzM]

java classloader

6
推荐指数
1
解决办法
4132
查看次数

异步I/O - Java

我一直在寻找有关Java中异步I/O的优点的详细信息,特别是从应用程序堆栈设计.

我遇到过很多事件驱动服务器的例子,如Node.js,Tornedo等.

我无法理解的是,为什么在Java EE中使用JBoss或Weblogic应用服务器的整个应用程序堆栈迁移到事件驱动的体系结构.

甚至这些服务器也支持非阻塞I/O. 是的,他们正在为每个请求分配一个线程,但是如果有一个线程池,资源是不是在良好的性能参数范围内呢?

请按以下方式向我提供一些意见.

  1. 为什么使用Apache-Tomcat/JBoss/Weblogic的传统Java EE体系结构考虑转向事件驱动的体系结构.
  2. 事件驱动的体系结构是否有助于提供与设备无关的网站/应用程序.
  3. 在云上设计应用程序时,我们会选择异步I/O.
  4. 事件驱动的体系结构性能是否优于传统的Java EE体系结构,还是一个神话.

javascript java io performance event-driven

5
推荐指数
1
解决办法
500
查看次数

wro4j&m2e Eclipse没有编译LESS

我正在尝试设置我的开发人员env,以便我可以使用maven编译我的LESS文件以进行正式构建,但也让Eclipse编译LESS以进行增量构建,因此我不必每次进行较少的更改时继续使用maven任务.环顾四周 - 似乎wro4j&maven插件和m2e-wtp插件应该提供所有这些.

我的设置如下:我刚刚安装了最新的稳定Eclipse(Java EE包,包括WTP的东西--v4.3),我已经安装了m2e插件和m2e-wtp插件.

pom.xml中:

<plugin>
    <groupId>ro.isdc.wro4j</groupId>
    <artifactId>wro4j-maven-plugin</artifactId>
    <version>1.4.5</version>
    <executions>
        <execution>
            <phase>compile</phase>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <targetGroups>roa-all</targetGroups>
        <destinationFolder>${project.build.directory}/${project.build.finalName}</destinationFolder>
        <cssDestinationFolder>${project.build.directory}/${project.build.finalName}/css/</cssDestinationFolder>
        <jsDestinationFolder>${project.build.directory}/${project.build.finalName}/js/</jsDestinationFolder>
        <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

wro.properties:

preProcessors=cssImport,semicolonAppender   
postProcessors=lessCss,cssMinJawr
Run Code Online (Sandbox Code Playgroud)

wro.xml:

<groups xmlns="http://www.isdc.ro/wro"> 
  <group name="roa-all">
        <css>/less/*.less</css>
    </group>      
</groups>
Run Code Online (Sandbox Code Playgroud)

在我的/less/文件夹里面基本上是一些css文件,我已经重命名.less文件,还有一个我实际上添加了一些LESS语法并设置了一些颜色变量.这主要是有效的,因为我对LESS进行了更改,插件会检测并重建我的超级css文件,但是,相当关键的是,它似乎没有编译LESS - 它结合了文件,并且缩小了,但我@variables都是仍然是LESS语法.

我还注意到maven插件达到v 1.7.0所以尝试升级到那个以查看是否是问题,但这根本什么也没做(根本没有任何内置,我没有超级css等)

任何人都有任何经验设置或知道我在设置中遗漏的任何东西?

eclipse less maven wro4j

5
推荐指数
1
解决办法
868
查看次数

在WebSphere 8.5上使用JASPIC auth模块

我有一个JASPIC auth模块,在GlassFish,WildFly和WebLogic上运行良好.

现在我们有一个使用WebSphere 8.5的新客户,我无法让auth模块在那里正常运行.

问题是WebSphere不接受auth模块放入CallerPrincipalCallback的用户名.我们其他受支持的服务器只接受这个,但出于某种原因,WebSphere认为它需要执行一些额外的检查.

在调查了这个问题后,我偶然发现了这个问题:https://www.ibm.com/developerworks/community/forums/html/topic?id = 77777777-0000-0000-0000-000014937852

这恰好描述了我的问题,但那里没有解决方案.

我如何让WebSphere说服只处理CallerPrincipalHandler并接受像所有其他服务器那样的用户名呢?

java websphere websphere-8 jaspic

4
推荐指数
1
解决办法
682
查看次数

JBoss AS 6.0上的JNDI查找

我在JBoss 6.0 AS上的localhost上部署了一个应用程序.此应用程序有一个名为ExampleEJB的远程EJB bean.现在我正在尝试编写一个使用ExampleEJB的简单客户端应用程序.此客户端应用程序不会部署在任何应用程序服务器上.我们的想法是编写一个简单的Java SE客户端程序.我写了以下尝试执行查找:

Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL,"localhost:1099");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

InitialContext ic = new InitialContext(env);
Run Code Online (Sandbox Code Playgroud)

在这一点上,我尝试了两种方法.第一种方法是执行直接查找,例如Java EE 6 Tutorial(http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html):

ExampleEJB exampleEJB = (ExampleEJB) ic.lookup("java:global/myApp/ExampleEJB");
Run Code Online (Sandbox Code Playgroud)

第二次尝试是尝试获取JNDI上下文环境,然后从这个环境中获取所需的bean:

Context envContext  = (Context)ic.lookup("java:/comp/env");
envContext.lookup(...)
Run Code Online (Sandbox Code Playgroud)

问题是我收到以下异常:"javax.naming.NameNotFoundException:global not bound"和"javax.naming.NameNotFoundException:comp not bound".我无法按要求执行查找.

有人有线索吗?

jndi java-ee jboss6.x

1
推荐指数
1
解决办法
6441
查看次数