我们的团队正在开发一个大型项目,我们希望构建一个包含多种表单和仪表板和功能的大型应用程序.一个整体SPA会变得复杂.所以我们讨论"微前端架构师"的方法.目标是生成包含多个子SPA的父SPA.所有SPA应该具有相同的框架(vueJS).
这种方法背后的想法(https://micro-frontends.org/)
我们已经找到了这种方法的一些实现
1)https://micro-frontends.org/
2)CanopyTax with single-spa - > https://github.com/CanopyTax/single-spa
我们想要在我们的前端使用什么:
VUE
VUE路由器
VUE资源
VUE装载机
的WebPack
我们的问题:
1)是否可以使用标准vue工具基于vue创建复合UI(微前端)?
- we are not sure how doable is it with VueJS
- there may already be example projects?
Run Code Online (Sandbox Code Playgroud)
2)我们有多个页面,因此我们需要一个从一侧导航到另一侧的解决方案.我们如何实现页面转换?
3)是否可以在VueJS组件之间建立事件总线?
4)我们如何实现组件之间的双向通信?
- Parent-Child Communication
- Child-Parent Communication
Run Code Online (Sandbox Code Playgroud) 我在Mac Yosemite上使用JBoss wildfly 10.0.0.CR2.我正在寻找一种简单的杀死JBoss的方法,并建议这个命令
pgrep -d" " -f "wildfly" | xargs kill;
Run Code Online (Sandbox Code Playgroud)
所以我运行这个命令,然后进入我的$ JBOSS_HOME/bin目录并运行"sh standalone.sh"并获得令人失望的输出......
Daves-MacBook-Pro-2:bin davea$ sh standalone.sh
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/wildfly-10.0.0.CR2
JAVA: java
JAVA_OPTS: -server -Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
=========================================================================
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
standalone.sh: line 302: 3096 Abort trap: 6 "java" …Run Code Online (Sandbox Code Playgroud) 我想使用QueryDSL返回最大值.
使用此查询,我返回eventid等于id的间隔,它正常工作.
QInterval interval = QInterval.interval;
JPAQuery query = new JPAQuery(em);
BooleanExpression checkId = interval.event.eventid.eq(id);
Interval interv = query.from(interval).where(checkId).uniqueResult(interval);
Run Code Online (Sandbox Code Playgroud)
但是如果我这样做并添加这个谓词我会得到一个错误(我想返回具有最大时间时间戳的类End的对象和End的对象:
BooleanExpression getMax = interval.end.timestamp.eq(interval.end.timestamp.max());
Interval interv = query.from(interval).where(getMax).uniqueResult(interval);
Run Code Online (Sandbox Code Playgroud)
我认为问题可能与interval.end.timestamp.max()有关,因为它是一个DateTimeExpression.
错误是 Caused by: java.sql.SQLException: Invalid use of group function:
org.springframework.orm.jpa.JpaSystemException: could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:314)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:225)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:417)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:131)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) …Run Code Online (Sandbox Code Playgroud) 在我们的项目中,我们正在使用一个 MDB 来侦听特定队列上的消息。它被定义为注释。
例子:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "maxSessions", propertyValue = "20")})
Run Code Online (Sandbox Code Playgroud)
.
为了更改 maxSessions 的值,每次都必须编译代码。即使我在 ejb-jar.xml 中配置它而不是作为注释,我也需要编译代码并生成 EAR 文件。
有没有办法让它用户可配置(从属性文件中读取),以便不需要重新编译代码,只需将 maxSession 值更改为“30”并重新启动 jboss,它应该可以工作。
请帮忙。
参考代码:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "ABCQueue"),
@ActivationConfigProperty(propertyName = "maxSessions", propertyValue = "20"), @ActivationConfigProperty(propertyName="maxMessagesPerSessions",propertyValue="15")})
public class ABCMDB implements MessageListener
{
-----------
}
Run Code Online (Sandbox Code Playgroud) java ×2
frontend ×1
hibernate ×1
javascript ×1
jboss ×1
jboss-mdb ×1
jms ×1
jpa ×1
osx-yosemite ×1
querydsl ×1
restart ×1
shutdown ×1
spring-orm ×1
vue.js ×1
wildfly ×1