我有2个不同的Java项目,一个有2个类:dynamicbeans.DynamicBean2和dynamic.Validator.
在另一个项目中,我动态加载这两个类并将它们存储在一个 Object
class Form {
Class beanClass;
Class validatorClass;
Validator validator;
}
Run Code Online (Sandbox Code Playgroud)
然后我继续创建一个Validator对象validatorClass.newInstance()并使用它validator然后我创建一个bean对象并使用beanClass.newInstance()并将其添加到会话中.
portletRequest.setAttribute("DynamicBean2", bean);
Run Code Online (Sandbox Code Playgroud)
在Form项目的生命周期中,我调用validator.validate()从会话中加载先前创建的bean对象(我正在运行Websphere Portal Server).当我尝试将此对象强制转换为DynamicBean2失败并出现ClassCastException时.
当我将对象拉回会话时使用
faces.getApplication().createValueBinding("#{DynamicBean2}").getValue(faces);
Run Code Online (Sandbox Code Playgroud)
并使用.getClass()我得到检查它的类dynamicbeans.DynamicBean2.这是我想要将它强制转换为的类,但是当我尝试获取ClassCastException时.
我得到这个的原因是什么?
我们有一个基于Java的应用程序,我们希望在其中检测发送请求的设备的设备类型(移动或桌面).
这怎么可能?
我正在为IBM WebSphere Portal 6.1做一些portlet开发.但是,部署过程非常缓慢.由于这是我第一次进行portlet开发,所以我不太熟悉那里的各种门户服务器.我想为轻量级门户服务器提供一些建议,我可以在其上快速部署以进行开发.
我正在寻找一些关于尝试诊断GC相关问题的指导.
我们正在使用WebSphere Portal在Solaris上进行测试,并且我当前的环境具有7%的垃圾收集开销(这是使用详细的GC计算并通过PMAT运行日志)我应该将此值与另一个以平均值运行的环境进行比较4.5%.env与WebSphere Portal的版本完全相同,JVM大小,参数,自定义变量等.在1小时性能测试期间,我的JVM有20多个分配失败,2个更多完整GC,在GC期间平均暂停时间比其环境高2秒.
您能否就所有相同的配置值和相同的1小时性能测试给出任何可能导致此问题的建议?或其他任何要审查?
谢谢
java garbage-collection performance-testing websphere-portal
我们最近从WebSphere Portal v6.1升级到v7.0,在此过程中我们现在可以使用JSF 1.2.在Rad 8中创建一个新的Portlet项目会创建一个带有以下条目的faces-config.xml
<application>
<state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
<variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
</application>
Run Code Online (Sandbox Code Playgroud)
然后抱怨:在JSF 1.1之后不推荐使用类型API变量解析器.请改用el-resolver.
不幸的是,我无法在el-resolver使用的IBM页面上找到答案.
编辑:
System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());
Run Code Online (Sandbox Code Playgroud)
=>解析器:com.sun.faces.el.FacesCompositeELResolver@696e696e
在faces-config中添加条目
<el-resolver>com.sun.faces.el.FacesCompositeELResolver</el-resolver>
Run Code Online (Sandbox Code Playgroud)
无论是否删除变量解析器,都会导致:
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)
... 89 more
Run Code Online (Sandbox Code Playgroud)
与IBM的PMR开放......
我使用过Websphere Portal 6.0,6.1并开发了门户应用程序,使用JSR 168,JSR 286 Portlets.
现在我转到项目,我将使用Liferay门户服务器和JSR 168,JSR 286.
我知道根据编程接口(JSR)它将是相同的.但是想知道与Websphere Portal相比,服务器级别(功能,配置,架构,开箱即用服务)的主要区别是什么?
谢谢
我正在尝试使用jQuery/ajax调用portlet的serveResource()方法.我设法得到一个简单的JSR-286 portlet,它在Pluto 2.0中工作,能够从请求体读取JSON字符串,从JSON创建一个Java对象,并将该对象的toString()返回给我的调用JavaScript.但是,当我将相同的portlet部署到WebSphere Portal 6.1时,请求体在到达serveResource()时是空的.
我假设我遗漏了一些基本/基本的东西,所以任何建议都会受到赞赏.我认为如果我将JSON字符串推送到URL参数上,但我现在可以避免使用这种方法,我可以让我的示例工作,除非我给出了我当前方法"糟糕"的原因.
编辑:*更具体地说,我将相同的portlet部署到运行WSRP Producer的WAS7并通过WebSphere Portal 6.1使用portlet.
Javascript代码段:
function ajaxPost() {
var url = "<%= testServiceURL %>";
var current = $("input.current").val();
$.ajax(
{
url: url,
contentType: 'application/json; charset=utf-8',
dataType: 'html',
data: "{data: " + current + "}",
type: 'POST',
success: testSuccess,
error: testError
}
);
$("div.trace").append("ajax post fired<br />");
}
function testSuccess(data, textStatus, XMLHttpRequest)
{
$("div.trace").append("testSuccess(): " + data + "<br />");
}
Run Code Online (Sandbox Code Playgroud)
Portlet代码段:
public class TestPortlet extends GenericPortlet {
...
@Override
public void serveResource(ResourceRequest request, ResourceResponse …Run Code Online (Sandbox Code Playgroud) 我们目前正在使用与Java 1.6一起运行的Websphere 8.0.0.7.不幸的是,我们想要集成到门户中的一些portlet需要运行Java 1.7.
在Websphere 8.0.0.7下有没有(简单)方法使用Java 1.7?我为Websphere 8.5找到了很多答案,但尤其不适用于8.0.是否可以使用1.7?
非常感谢您的努力!
菲利普
我创建了一个RenderingPluginfor,用于在WebSphere Portal向客户端发送标记之前调用服务器端.插件循环遍历所有cookie,如果找不到'test',我想设置该cookie.
我知道这是可能的,HttpServletResponse但是RenderingPlugin没有访问该对象.它只有一个HttpServletRequest.
还有另一种方法吗?
public class Request implements com.ibm.workplace.wcm.api.plugin.RenderingPlugin {
@Override
public boolean render(RenderingPluginModel rpm) throws RenderingPluginException {
boolean found = false;
HttpServletRequest servletRequest = (HttpServletRequest) rpm.getRequest();
Cookie[] cookie = servletRequest.getCookies();
// loop through cookies
for (int i = 0; i < cookie.length; i++) {
// if test found
if (cookie[i].getName().equals("test")) {
found = true;
}
}
if (!found){
// set cookie here
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用引导折叠功能在我们的IBM Web门户中无法正常工作。它在“显示”功能上工作正常,但在“隐藏”功能上无效。
<a href="#demo" data-toggle="collapse"><span class=”icon”>Collapsible</span></a>
<div id="demo" class="collapse">
Sample Code
</div>
Run Code Online (Sandbox Code Playgroud)
我在控制台窗口中看到的“ 区域扩大 ”的价值并没有在我们的崩溃改变,也没有改变类的名称,如“ 倒塌 ”和崩溃的 ”。
如何解决。