问题很简单:有没有办法从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)
但我不认为这是要走的路......
我无法找到一个明确的答案,确定在会话范围内的JSF托管bean中生成线程是否安全.线程需要调用无状态EJB实例上的方法(依赖注入到托管bean).
背景是我们有一个需要很长时间才能生成的报告.这导致HTTP请求由于我们无法更改的服务器设置而超时.因此,我们的想法是启动一个新线程,让它生成报告并暂时存储它.与此同时,JSF页面显示了一个进度条,轮询托管bean直到生成完成,然后再发出第二个请求来下载存储的报告.这似乎有效,但我想确定我所做的不是黑客.
我在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中实例化.但春天说的是像豆子一样的东西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世界的新手(7年的低级平原C).
当我开始阅读Java相关网站时:
我对现有的术语感到困惑:
我找到了许多关于术语定义的资源(还有更多):
但是这些资源中的每一个都根据自己的目的来定义它们,在一般情况下我仍然无法区分模块和组件.
请在大图中解释这些术语的含义(可以是单一类平台,制作容器需要多少模块等).
更新2019年来自https://www.artima.com/lejava/articles/reuse3.html(我的重点介绍)
Bill Venners:框架,平台和工具包之间的区别是什么,以及不同的灵活性需求是什么?
Erich Gamma:通过平台,我将长期稳定性联系在一起.在平台上构建是安全的.平台提供兼容性保证.框架通常没有这种质量,我已经看到许多框架在稳定性方面的失败.如果你看一下Eclipse,是的,它包括框架,工具包,并提供平台API.所有这些都捆绑为插件.框架抽象并提供更高级别的默认功能.为此,框架需要得到控制.这种失控可导致有时被称为框架炎.
Bill Venners:工具包没有因为......
Erich Gamma:使用工具包,您可以创建并调用工具包对象并注册侦听器以对事件做出反应.你在掌控之中.框架试图控制并告诉您何时做什么.一个工具包为您提供了基石 …
我从Web下载了这个工作区,我尝试在全新安装的Eclipse Ganymede的tomcat服务器上运行它.这个特殊项目带有自己的工作空间.
当我选择Tomcat v6.0时,我收到一条消息
无法使用所选类型创建服务器
但是,可以使用较旧的tomcat版本.
我想我必须重新创建一些配置设置.问题是哪一个?这似乎是一个奇怪的错误,因为创建一个新的动态Web项目让我为它们配置tomcat
您建议使用哪种(商业或免费)安装程序工具将InstallAnywhere替换为Java EE应用程序的安装程序?你特别喜欢它,它的缺点是什么?
一些要求:
编辑:还有几点:
编辑:我发布了一个单独的答案,关于我们最终选择了什么以及为什么.
我需要为我的用户提供一个Web界面来更改会话超时间隔.因此,Web应用程序的不同安装将能够为其会话设置不同的超时,但它们web.xml不能有所不同.
有没有办法以编程方式设置会话超时,以便我可以使用,比如ServletContextListener.contextInitialized()读取配置的间隔并在应用程序启动时设置它?
非常感谢.
在我的Web应用程序中,有一些请求持续时间超过20秒.但在某些情况下,代码可能导致无限循环或类似的东西,从而减慢服务器的速度.
我想在服务器端将请求超时60秒.这是在tomcat中实现的吗?
谢谢,Horatiu
==并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-ee ×10
java ×7
spring ×2
timeout ×2
tomcat ×2
aop ×1
architecture ×1
aspectj ×1
concurrency ×1
eclipse ×1
ejb ×1
el ×1
enterprise ×1
exception ×1
installer ×1
jax-ws ×1
jsf ×1
request ×1
servlets ×1
session ×1
spring-aop ×1
terminology ×1
web-services ×1
websphere-8 ×1
workspace ×1