我把dataway属性配置写在了spring的application.properties里面,但是web项目启动的时候显示dataway is disable,我看文档上面说hasor是自动关联spring配置文件的,想请问下这是什么原因?
application.properties配置:
HASOR_DATAQL_DATAWAY=true
HASOR_DATAQL_DATAWAY_ADMIN=true
HASOR_DATAQL_DATAWAY_API_URL=/api/
HASOR_DATAQL_DATAWAY_UI_URL=/interface-ui/
HASOR_DATAQL_FX_PAGE_DIALECT=oracle
applicationContext.xml
<context:property-placeholder location="classpath:/conf/application.properties" />
Web.xml代码:
<listener>
<listener-class>net.hasor.web.startup.RuntimeListener</listener-class>
</listener>
<filter>
<filter-name>rootFilter</filter-name>
<filter-class>net.hasor.web.startup.RuntimeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>rootFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>hasor-root-module</param-name>
<param-value>zhi.sys.hasor.StartModule</param-value>
</context-param>
Java代码:
@DimModule
@Component
public class StartModule implements SpringModule {
@Autowired
private DataSource dataSource ;
@Override
public void loadModule(ApiBinder apiBinder) throws Throwable {
apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource));
System.out.println("------Project Start------");
}
}
<p>错误日志:</p>
2020-05-21 16:38:44 INFO [RuntimeListener.java:99] - properties file is undefinition.
2020-05-21 16:38:44 INFO [RuntimeListener.java:91] - web initModule is zhi.sys.hasor.StartModule
2020-05-21 16:38:44 INFO [ Hasor.java:224] - runMode at Full ,runPath at C:\Users\Administrator\Desktop\eclipse-jee-oxygen-2-win32-x86_64\eclipse
2020-05-21 16:38:44 INFO [StandardContextSettings.java:130] - addConfig '/META-INF/hasor-framework/core-hconfig.xml' in 'jar:file:/E:/woke/tomcat-gfzq-khda(8080)/webapps/gfzq-khda/WEB-INF/lib/hasor-core-4.1.7.jar!/META-INF/hasor.schemas'
2020-05-21 16:38:44 INFO [StandardContextSettings.java:130] - addConfig '/META-INF/hasor-framework/dataql-hconfig.xml' in 'jar:file:/E:/woke/tomcat-gfzq-khda(8080)/webapps/gfzq-khda/WEB-INF/lib/hasor-dataql-4.1.7.jar!/META-INF/hasor.schemas'
2020-05-21 16:38:44 INFO [StandardContextSettings.java:130] - addConfig '/META-INF/hasor-framework/dataql-fx-hconfig.xml' in 'jar:file:/E:/woke/tomcat-gfzq-khda(8080)/webapps/gfzq-khda/WEB-INF/lib/hasor-dataql-fx-4.1.7.jar!/META-INF/hasor.schemas'
2020-05-21 16:38:44 INFO [StandardContextSettings.java:130] - addConfig '/META-INF/hasor-framework/dataway-hconfig.xml' in 'jar:file:/E:/woke/tomcat-gfzq-khda(8080)/webapps/gfzq-khda/WEB-INF/lib/hasor-dataway-4.1.7.jar!/META-INF/hasor.schemas'
2020-05-21 16:38:44 INFO [StandardContextSettings.java:130] - addConfig '/META-INF/hasor-framework/db-hconfig.xml' in 'jar:file:/E:/woke/tomcat-gfzq-khda(8080)/webapps/gfzq-khda/WEB-INF/lib/hasor-db-4.1.7.jar!/META-INF/hasor.schemas'
2020-05-21 16:38:44 INFO [StandardContextSettings.java:130] - addConfig '/META-INF/hasor-framework/web-hconfig.xml' in 'jar:file:/E:/woke/tomcat-gfzq-khda(8080)/webapps/gfzq-khda/WEB-INF/lib/hasor-web-4.1.7.jar!/META-INF/hasor.schemas'
2020-05-21 16:38:44 INFO [AbstractEnvironment.java:240] - loadPackages = com.*, net.*, net.hasor.*, net.hasor.dataql.*, net.hasor.dataql.fx.*, net.hasor.dataway.*, net.hasor.db.*, net.hasor.web.*, org.*
2020-05-21 16:38:44 INFO [TemplateAppContext.java:389] - loadModule class net.hasor.dataway.config.DatawayModule
2020-05-21 16:38:44 INFO [DatawayModule.java:54] - dataway is disable.
2020-05-21 16:38:44 INFO [TemplateAppContext.java:389] - loadModule class net.hasor.web.render.RenderWebPlugin
2020-05-21 16:38:44 INFO [TemplateAppContext.java:389] - loadModule class net.hasor.core.exts.startup.StartupModule
2020-05-21 16:38:44 INFO [TemplateAppContext.java:389] - loadModule class net.hasor.core.exts.aop.AopModule
2020-05-21 16:38:44 INFO [TemplateAppContext.java:389] - loadModule class net.hasor.dataql.fx.FxModule
2020-05-21 16:38:44 INFO [TemplateAppContext.java:389] - loadModule class zhi.sys.hasor.StartModule
五月 21, 2020 4:38:44 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class net.hasor.web.startup.RuntimeListener
java.lang.NullPointerException
<p>参数没有生效,看你的例子应该不是 Spring Boot 工程,参考一下 Xml 方式整合。</p>
Spring Xml 方式整合 Hasor - https://www.hasor.net/web/extends/spring/for_xml.html
Spring Boot 方式整合 Hasor - https://www.hasor.net/web/extends/spring/for_boot.html
Hasor 和 Spring 需要先做整合。
最主要的是你需要初始化 hasor。
回复 <a class="referer" target="_blank">@阿布菲达</a> : 不用,可以整合到你 已有的 spring 配置文件里面。 引入一下那个 h 标签。
需要重新写一个.xml文件引用吗?
<p>哦对了,还有一个我不太确定。你按照上面方式配置之后如果还没有生效,那么就需要</p>
新建一个类 集成一下 RuntimeListener,手动的把 Spring 容器中的那个 Hasor 容器拿出来。丢到 RuntimeListener 里面。
因为 Xml 方式现在用的人不多,这块还没有做深入优化。
我把最新的问题回答在下面,你看一下
<p>我把web.xmlde的<context-param>代码段注释掉,然后改为在application.xml里面启动StartModule,这样dataway又没问题了,但是我输入地址访问/interface-ui/的时候,又出现了No mapping found for HTTP request with URI的问题,但这个应该不是路径被拦截的问题吧。</p>
回复 <a class="referer" target="_blank">@阿布菲达</a> : 可以方便提供一个样板工程吗? 我做一下调试在发给你。 正好也可以沉淀下来扔到 首页上去。
回复 <a class="referer" target="_blank">@哈库纳</a> : 我是改为新增一个hconfig.xml文件,在里面配了<hasor.modules>
<module>net.hasor.StartModule</module>
</hasor.modules>标签,这样是可以自动获取spring配置的dataway属性,但在后面就报错的。
回复 <a class="referer" target="_blank">@哈库纳</a> : 你好,现在可以读取dataway的配置属性,但是后来出现 BeanCreationException: Error creating bean with name 'net.hasor.core.AppContext': Invocation of init method failed; nested except异常,请问这是漏了步骤吗?
回复 <a class="referer" target="_blank">@阿布菲达</a> : 其实主要是 和 spring 的集成度的问题造成的。 如果不是 web 项目自然会简单很多。
回复 <a class="referer" target="_blank">@哈库纳</a> : 这个问题和是否是web项目启动无关吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。