标签: java-ee

从ProceedingJoinPoint获取java.lang.reflect.Method?

问题很简单:有没有办法从apsectj ProceedingJoinPoint获取Method对象?

目前我在做

Class[] parameterTypes = new Class[joinPoint.getArgs().length];
Object[] args = joinPoint.getArgs();
for(int i=0; i<args.length; i++) {
    if(args[i] != null) {
        parameterTypes[i] = args[i].getClass();
    }
    else {
        parameterTypes[i] = null;
    }
}

String methodName = joinPoint.getSignature().getName();
Method method = joinPoint.getSignature()
    .getDeclaringType().getMethod(methodName, parameterTypes);
Run Code Online (Sandbox Code Playgroud)

但我不认为这是要走的路......

aop spring aspectj spring-aop java-ee

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

在JSF托管bean中启动新线程是否安全?

我无法找到一个明确的答案,确定在会话范围内的JSF托管bean中生成线程是否安全.线程需要调用无状态EJB实例上的方法(依赖注入到托管bean).

背景是我们有一个需要很长时间才能生成的报告.这导致HTTP请求由于我们无法更改的服务器设置而超时.因此,我们的想法是启动一个新线程,让它生成报告并暂时存储它.与此同时,JSF页面显示了一个进度条,轮询托管bean直到生成完成,然后再发出第二个请求来下载存储的报告.这似乎有效,但我想确定我所做的不是黑客.

concurrency jsf ejb java-ee

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

Java Web Service客户端基本身份验证

我在Glassfish之上创建了一个JAX-WS Web服务,它需要基本的HTTP身份验证.

现在我想为该Web服务创建一个独立的Java应用程序客户端,但我不知道如何传递用户名和密码.

它适用于Eclipse的Web Service资源管理器,并检查我发现的电线:

POST /SnaProvisioning/SnaProvisioningV1_0 HTTP/1.1
Host: localhost:8080
Content-Type: text/xml; charset=utf-8
Content-Length: 311
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: IBM Web Services Explorer
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Authorization: Basic Z2VybWFuOmdlcm1hbg==
Connection: close

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ngin.ericsson.com/sna/types/v1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <q0:listServiceScripts/>
  </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

如何使用java代码在此"Authorization"标头中传递用户名和密码?它是哈希还是类似的东西?算法是什么?

如果没有安全性,我有一个独立的java客户端:

SnaProvisioning myPort = new SnaProvisioning_Service().getSnaProvisioningV10Port();
myPort.listServiceScripts();
Run Code Online (Sandbox Code Playgroud)

java web-services jax-ws java-ee

45
推荐指数
6
解决办法
19万
查看次数

春天的抽象="真实"是什么意思?

抽象类无法在java中实例化.但春天说的是像豆子一样的东西abstract="true".如果抽象类的状态仅由其子类实例初始化(我猜我是对的),那么如果我需要在抽象类中定义的方法中使用该属性那么...是否有可能它?我有一组代码如下:

class abstract A { 
    private Something somethingObj; 
    // getters and setters are present.

    public void logSomething() { 
        try{ 
           //some code which throws exception 
        }
        catch(Exception e){ 
            somethingObj.logIt(e);// I have some logic inlogIt method. 
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring exception java-ee

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

Java世界中的类vs包与模块与组件与容器与服务与平台的对比

我是Java世界的新手(7年的低级平原C).

当我开始阅读Java相关网站时:

我对现有的术语感到困惑:

  • 类
  • 包
  • 模
  • 零件
  • 容器
  • 服务
  • 骨架
  • 平台

我找到了许多关于术语定义的资源(还有更多):

但是这些资源中的每一个都根据自己的目的来定义它们,在一般情况下我仍然无法区分模块和组件.

请在大图中解释这些术语的含义(可以是单一类平台,制作容器需要多少模块等).

更新2019年来自https://www.artima.com/lejava/articles/reuse3.html(我的重点介绍)

Bill Venners:框架,平台和工具包之间的区别是什么,以及不同的灵活性需求是什么?

Erich Gamma:通过平台,我将长期稳定性联系在一起.在平台上构建是安全的.平台提供兼容性保证.框架通常没有这种质量,我已经看到许多框架在稳定性方面的失败.如果你看一下Eclipse,是的,它包括框架,工具包,并提供平台API.所有这些都捆绑为插件.框架抽象并提供更高级别的默认功能.为此,框架需要得到控制.这种失控可导致有时被称为框架炎.

Bill Venners:工具包没有因为......

Erich Gamma:使用工具包,您可以创建并调用工具包对象并注册侦听器以对事件做出反应.你在掌控之中.框架试图控制并告诉您何时做什么.一个工具包为您提供了基石 …

java architecture enterprise terminology java-ee

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

无法将服务器添加到已移动的工作区

我从Web下载了这个工作区,我尝试在全新安装的Eclipse Ganymede的tomcat服务器上运行它.这个特殊项目带有自己的工作空间.

当我选择Tomcat v6.0时,我收到一条消息

无法使用所选类型创建服务器

但是,可以使用较旧的tomcat版本.

我想我必须重新创建一些配置设置.问题是哪一个?这似乎是一个奇怪的错误,因为创建一个新的动态Web项目让我为它们配置tomcat

eclipse workspace tomcat java-ee

44
推荐指数
3
解决办法
5万
查看次数

什么是安装Java EE应用程序的优秀InstallAnywhere替换?

您建议使用哪种(商业或免费)安装程序工具将InstallAnywhere替换为Java EE应用程序的安装程序?你特别喜欢它,它的缺点是什么?

一些要求:

  • 必须支持在安装过程中运行自定义Java代码
  • 必须支持Windows,包括最新的64位版本,如Windows Server 2008; 支持其他目标操作系统是一个加号
  • 必须能够在Windows上将捆绑的应用程序服务器(如Resin或Tomcat)安装为服务
  • 必须支持基本的东西,如复制和移动文件,编辑配置文件,提取ZIP等.
  • (必须支持捆绑特定版本的JRE;至少包括要提取的ZIP)

编辑:还有几点:

  • 优选地,不依赖于目标机器上预先安装的JRE(或任何其他第三方运行时环境或库); 换句话说,可以生成一个独立的Windows .exe(或.msi)
  • 该工具最好应该是跨平台的,以便可以在Linux,Windows或Mac上完成安装程序开发.
  • 最好应该有一个合适的GUI来安装安装程序.但是,一旦完成,就必须跳过GUI并使安装程序构建自动构建过程的一部分.

编辑:我发布了一个单独的答案,关于我们最终选择了什么以及为什么.

java installer windows-installer java-ee

44
推荐指数
4
解决办法
3万
查看次数

如何在Java Web应用程序中动态设置会话超时?

我需要为我的用户提供一个Web界面来更改会话超时间隔.因此,Web应用程序的不同安装将能够为其会话设置不同的超时,但它们web.xml不能有所不同.

有没有办法以编程方式设置会话超时,以便我可以使用,比如ServletContextListener.contextInitialized()读取配置的间隔并在应用程序启动时设置它?

非常感谢.

java session timeout servlets java-ee

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

Tomcat请求超时

在我的Web应用程序中,有一些请求持续时间超过20秒.但在某些情况下,代码可能导致无限循环或类似的东西,从而减慢服务器的速度.

我想在服务器端将请求超时60秒.这是在tomcat中实现的吗?

谢谢,Horatiu

java tomcat timeout request java-ee

44
推荐指数
3
解决办法
13万
查看次数

我应该选择==或eq来比较EL中的字符串吗?

==并eq使用EL给出相同的结果来进行我的字符串比较测试:

    <c:if test="${person.sokande_i == 'endast_usa'}">Endast USA</c:if>
    <c:if test="${person.sokande_i == 'alla'}">Alla länder</c:if>
    <c:if test="${person.sokande_i == 'alla_utom_usa'}">Alla utom USA</c:if>
Run Code Online (Sandbox Code Playgroud)

我应该用eq吗?是==仅整数?但它也适用于字符串.AFAIK ==测试hashCodes是否相等并且eq意味着"有意义的不同".

另一个问题是说==并eq做同样的事情.

这里没有区别吗?与我说的不同之==处在于:查看hashCode并eq查看实现equals(...).

java el java-ee websphere-8

44
推荐指数
3
解决办法
9万
查看次数