Tag: seam

weblogic ejb ComplianceException

我尝试部署在weblogic 10.3上使用EJB的应用程序。 我使用框架接缝2.2.0 我创建了一个EJB项目和带有研讨会的EAR项目。 当我编译项目时,我收到此错误: weblogic.ejb.container.compliance.ComplianceException: No business interface, component interface or web service endpoint interface found for Session Bean Authenticator 这是bean代码: import javax.ejb.Local; import javax.ejb.Stateless; import javax.persistence.EntityManager; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Logger; import org.jboss.seam.annotations.Name; import org.jboss.seam.contexts.SessionContext; import org.jboss.seam.faces.FacesMessages; import org.jboss.seam.faces.Redirect; import org.jboss.seam.log.Log; import org.jboss.seam.security.Credentials; import org.jboss.seam.security.Identity; import org.jboss.seam.security.crypto.BinTools; import org.jboss.seam.security.management.IdentityManager; import org.jboss.seam.security.management.JpaIdentityStore; @Stateless @Local @Name(“authenticator”) […]

h:包含图像的selectOneRadio

我有啊:selectOneRadio标签用于显示多个单选按钮: 现在,我希望在其旁边放置带有(可点击)图像的单选按钮,而不是带有字符串值(标签)的单选按钮。 这可能吗? 如果是这样,怎么样? 更新:实际上,应该同时包含文本和带有问号的图像,该图像在单击时显示模态面板。

JSF / Seam:如何在没有用户干预的情况下下载和打印动态生成的PDF文件?

我有一个JSF / Seam Web应用程序,其中有一个页面,其中包含一个表单,当提交(按钮单击)时,会根据表单输入动态创建PDF文件(在Java,服务器端)。 目前我的工作是将生成的PDF作为文件下载返回到浏览器,因此用户可以选择保存或在Acrobat Reader中打开它以进行后续打印。 我想要发生的是PDF被发送到浏览器并打印(客户端)而无需进一步的用户干预(好吧,除了可能出现的Windows打印机选项对话框,我无能为力)。 该解决方案似乎基于在加载PDF的页面上隐藏iframe ,然后在iframe上调用.contentWindow.print() 。 但是,我不知道如何通过HttpServletResponse (在Java中)将PDF放入iframe,更不用说在加载pdf后如何在iframe上自动调用print()了。

奇怪的“字符串索引超出范围:0”错误

我有一个巨大的应用程序,在某些时候,当涉及重定向时,我收到了这个奇怪的错误: Caused by java.lang.StringIndexOutOfBoundsException with message: “String index out of range: 0” java.lang.String.charAt(String.java:687) com.sun.faces.application.ViewHandlerImpl.getActionURL(ViewHandlerImpl.java:652) org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:74) com.sun.facelets.FaceletViewHandler.getActionURL(FaceletViewHandler.java:803) org.ajax4jsf.application.ViewHandlerWrapper.getActionURL(ViewHandlerWrapper.java:86) org.jboss.seam.ui.util.ViewUrlBuilder.(ViewUrlBuilder.java:25) org.jboss.seam.ui.component.UISeamCommandBase.getUrl(UISeamCommandBase.java:48) org.jboss.seam.ui.renderkit.LinkRendererBase.doEncodeBegin(LinkRendererBase.java:26) org.jboss.seam.ui.util.cdk.RendererBase.encodeBegin(RendererBase.java:79) javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:813) javax.faces.component.UIComponent.encodeAll(UIComponent.java:934) javax.faces.component.UIComponent.encodeAll(UIComponent.java:942) javax.faces.component.UIComponent.encodeAll(UIComponent.java:942) com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592) org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) org.jboss.seam.web.RewriteFilter.doFilter(RewriteFilter.java:63) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) […]

以编程方式将Bean注入CDI上下文?

是否可以手动将bean注入CDI上下文? 使用JBoss Seam框架,我总能做类似Contexts.getConversationContext().set(“foo”, bar); 并且Bean将成为该上下文的一部分。 是否可以在Java EE 6 CDI中执行类似的操作?

是否可以在JBoss定时服务中使用Seam?

我已经开始编写一些新的JBoss定时服务,旨在使用一些现有的接缝组件。 但由于不存在的上下文,我似乎无法访问这些组件。 是否可以在JSF的典型情况下使用它们? 一个小小的片段来展示我想要做的事情…… @Service public class MyService extends DefaultTimedService implements TimedObject, DefaultServiceInterface { @Timeout public void ejbTimeout(Timer timer) { MyInterface loader = (MyInterface) Component.getInstance(MyInterface.SEAM_NAME, true); // throws no context! } } 例如,抛出以下exception: java.lang.IllegalStateException: No application context active at org.jboss.seam.Component.forName(Component.java:1945) at org.jboss.seam.Component.getInstance(Component.java:2005)

我应该选择哪个框架 – Seam,Wicket,JSF或GWT?

我正在讨论是否使用Seam,Wicket,JSF或GWT作为Java项目中表示层的基础。 我根据就业市场考虑因素,技术的新颖性以及其他SO用户的建议,将我选择的Java Web框架缩小到这个子集。 在决定这些因素时,我应该考虑哪些因素?

JSF没有在缝中解释

Hy伙计们, 我在weblogic 10.3上安装了jboss-seam(有很多问题:()但现在它正常工作,我的应用程序已部署。 但是现在,我遇到了一个新问题,我的JSF没有被解释,JSF代码出现在HTML中。 这是我的web.xml: com.sun.faces.config.ConfigureListener org.jboss.seam.servlet.SeamListener org.richfaces.SKIN glassX org.richfaces.CONTROL_SKINNING disable org.richfaces.CONTROL_SKINNING_CLASSES disable org.richfaces.LoadStyleStrategy ALL org.richfaces.LoadScriptStrategy ALL Seam Filter org.jboss.seam.servlet.SeamFilter Seam Filter /* Seam Resource Servlet org.jboss.seam.servlet.SeamResourceServlet facelets.DEVELOPMENT @debug@ javax.faces.DEFAULT_SUFFIX .seam Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.seam Seam Resource Servlet /seam/resource/* jboss-seam-jee5/AuthenticatorAction/local Session org.jboss.seam.example.booking.Authenticator jboss-seam-jee5/BookingListAction/local Session org.jboss.seam.example.booking.BookingList jboss-seam-jee5/RegisterAction/local Session org.jboss.seam.example.booking.Register jboss-seam-jee5/ChangePasswordAction/local Session org.jboss.seam.example.booking.ChangePassword jboss-seam-jee5/HotelBookingAction/local […]

如何在java.util.Calendar字段上映射IceFaces 组件?

有谁知道组件如何映射到java.util.Calendar字段,而不是java.util.Date ? 我使用的是IceFaces 1.8.2版,组件 。 该组件需要与java.util.Date proeprty绑定。 例如, value=”#{bean.myDate}” , myDate字段必须是java.util.Date类型。 但我需要我的日期字段是java.util.Calendar类型。 我的试验:我试过使用标准转换器或自定义转换器: 标准一: 它格式化GUI中的值,但是当在类型Calendar的属性bean.myDate上设置它时,我收到以下错误消息: [5/3/10 12:09:18:398 EEST] 00000021生命周期I警告:FacesMessage已入队,但可能尚未显示。 sourceId = j_id12:j_id189:myDate [severity =(ERROR 2),summary =(/ WEB-INF / xhtml ………… file.xhtml @ 507,51 value =“#{bean。 myDate}“:无法在类’bean’上将属性’myDate’设置为值’5/11/10 3:00 AM’。),detail =(/ WEB-INF / xhtml …….. file.xhtml @ 507,51 value =“#{bean.myDate}”:无法在类’… bean …’上将属性’myDate’设置为值’5/11/10 3:00 AM’ 。)] 自定义一: getAsObject […]

强制事务回滚Seam中的validation错误

快速版本:我们正在寻找一种方法来强制事务在特定情况下在支持bean上执行方法时发生回滚,但是我们希望在不向用户显示通用500错误页面的情况下进行回滚。 相反,我们希望用户看到她刚刚提交的表单和一个表明问题所在的FacesMessage。 长版本:我们有一些支持bean,它们使用组件在数据库中执行一些相关的操作(使用JPA / Hibernate)。 在此过程中,某些数据库操作发生后可能会发生错误。 这可能是出于几个不同的原因,但对于这个问题,让我们假设在发生一些DB写入之后检测到的validation错误在写入发生之前是不可检测的。 发生这种情况时,我们希望确保到目前为止所有的数据库更改都将被回滚。 Seam可以解决这个问题,因为如果你从当前的FacesRequest中抛出一个RuntimeException,Seam将回滚当前的事务。 这样做的问题是用户显示了一般错误页面。 在我们的例子中,我们实际上希望用户能够显示她所在的页面,并提供有关出错的描述性消息,并有机会纠正导致问题的错误输入。 我们提出的解决方案是从发现带有注释的validation问题的组件中抛出exception: @ApplicationException( rollback = true ) 然后我们的支持bean可以捕获此exception,假设抛出它的组件已发布相应的FacesMessage,并且只需返回null以将用户带回输入页面并显示错误。 ApplicationException注释告诉Seam回滚事务,我们没有向用户显示一般错误页面。 这在我们使用它的第一个地方运作良好,恰好只是插入。 我们尝试使用它的第二个地方,我们必须在此过程中删除一些东西。 在第二种情况下,如果没有validation错误,一切正常。 如果确实发生了validation错误,则抛出回滚exception并将事务标记为回滚。 即使没有发生回滚数据库修改,当用户修复错误数据并重新提交页面时,我们得到: java.lang.IllegalArgumentException: Removing a detached instance 分离的实例从另一个对象延迟加载(存在多对一关系)。 在实例化辅助bean时加载该父对象。 由于事务在validation错误后回滚,因此该对象现在已分离。 我们的下一步是将此页面从会话范围更改为页面范围。 当我们这样做时,Seam甚至无法在validation错误之后呈现页面,因为我们的页面必须命中数据库才能呈现并且事务已标记为回滚。 所以我的问题是:其他人如何干净利落地处理错误并同时正确管理交易? 更好的是,我希望能够使用我们现在拥有的所有东西,如果有人能够发现我做错的东西,而且相对容易修复。 我已经阅读了有关统一错误页面和exception处理的Seam Framework文章,但这更倾向于应用程序可能遇到的更一般的错误。 更新 :这里有一些psudo代码和页面流的详细信息。 在这种情况下,假设我们正在编辑一些用户的信息(在这种情况下我们实际上并没有处理用户,但我不打算发布实际的代码)。 编辑function的edit.page.xml文件包含RESTful URL的简单重写模式和两个导航规则: 如果结果成功编辑,则将用户重定向到相应的视图页面以查看更新的信息。 如果用户点击取消按钮,则将用户重定向到相应的视图页面。 edit.xhtml非常基本,可以编辑用户的所有部分的字段。 辅助bean具有以下注释: @Name( “editUser” ) @Scope( ScopeType.PAGE ) 有一些注入的组件,如用户: @In […]