Java EE

SpringBoot微服务

大城市里の小女人 提交于 2021-01-14 05:22:42
  在企业级软件的架构模型上,我们主要讨论下SOA与微服务架构。   SOA的全称是Service-Oriented Architecture,可译为“面向服务的架构”,它是一个组件模型,将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。   SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。   SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。   SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。   在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry

spring mvc(4)处理模型数据

岁酱吖の 提交于 2021-01-14 04:01:00
处理模型数据 Spring MVC 提供了以下几种途径输出模型数据: – ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加   模型数据 – Map 及 Model: 入参为org.springframework.ui.Model、org.springframework.ui.   ModelMap 或 java.uti.Map 时,处理方法返回时,Map   中的数据会自动添加到模型中。 – @SessionAttributes: 将模型中的某个属性暂存到   HttpSession 中,以便多个请求之间可以共享这个属性 – @ModelAttribute: 方法入参标注该注解后, 入参的对象就会放到数据模型中 注:下面的代码均来自上一篇的注解代码之后的测试代码!! ModelAndView 控制器处理方法的返回值如果为 ModelAndView, 则其既 包含视图信息,也包含模型数据信息。 添加模型数据: – MoelAndView addObject(String attributeName, Object attributeValue) – ModelAndView addAllObject(Map<String, ?> modelMap) 设置视图: – void setView(View view) – void

Web.xml详解

做~自己de王妃 提交于 2021-01-13 22:13:07
这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论。 ---题记 Web.xml详解: 1.web.xml加载过程(步骤) 首先简单讲一下,web.xml的加载过程。当启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。 1. 启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: <listener></listener>和<context-param></context-param>。 2. 紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。 3. 容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。 4. 容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:

Redis +Tomcat实现Session共享

早过忘川 提交于 2021-01-13 05:51:58
1.1 背景 因业务需要准备在原有Tomcat部署的web项目中加入Redis 实现session共享方案。 1.2 业务流程 1.3 功能改造 1) 下载tomcat-cluster-redis-session-manager https://github.com/ran-jit/tomcat-cluster-redis-session-manager tomcat-cluster-redis-session-manager.rar 2) 添加redis-data-cache.properties 在tomcat/conf/redis-data-cache.properties文件中配置redis数据库信息 redis.hosts=10.3.8.235:6379,10.3.8.236:6379,10.3.8.237:6379 redis.password=123456 3) 修改context.xml 在tomcat/conf/context.xml文件中…段中增加以下两行: <Valve className="tomcat.request.session.redis.SessionHandlerValve" /> <Manager className="tomcat.request.session.redis.SessionManager" /> 4) web.xml 配置

记Weblogic部署BUG(websocket)

只愿长相守 提交于 2021-01-13 05:37:41
将含有websocket的SSM项目部署在Weblogic上面,遇到websocket报错如下 java.lang.ClassCastException: org.springframework.session.web.http.SessionReposi toryFilter$SessionRepositoryRequestWrapper$HttpSessionWrapper cannot be cast to weblogic.servlet.security.internal.SessionSecurityData at weblogic.servlet.security.internal.SecurityModule.getCurrentUser(Secu rityModule.java:197) at weblogic.websocket.tyrus.TyrusServletFilter.doFilter(TyrusServletFilt er.java:167) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja va:78) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(Abst

Caused by: javax.el.PropertyNotFoundException: Property 'product' not found on type java....

混江龙づ霸主 提交于 2021-01-13 03:01:01
今天在JSP利用EL表达式取值报了 "javax.el.PropertyNotFoundException”,经过debug和打印将问题定位到这段代码: HTML应该是没啥问题,看提示在java.lang.string类型上找不到属性“product”,应该是EL表达式哪里写错了,然后将图中EL表达式重新写了一遍: 然后神奇的不报错了,搞得我一脸蒙蔽,我将每段代码都比对了一下,没发现哪里不对,干就干彻底,替换每段代码测试,结果第一段替换进去就OK了 仔细检查了两段代码: //报错代码 <c:forEach items="${order.orderItems } " var="orderItem"> //成功代码 <c:forEach items="${order.orderItems }" var="orderItem"> 睁开我的钛合狗眼看了N遍,终于发现明明一样的代码,长度却不同。 再检查,细心又帅气的我发现第一段代码在EL表达式的 花括号 “}”结尾 与 双引号 中间多 了个空格 这里是不能有空格的 这玩意浪费我两小时的时间去排查,写代码的时候一定要细心细心再细心! 来源: oschina 链接: https://my.oschina.net/u/4365953/blog/3541340

看了这篇http协议,你还敢说之前会吗?

。_饼干妹妹 提交于 2021-01-12 18:04:23
HTTP协议简介 超文本传输协议(英文: H yper T ext T ransfer P rotocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。 HTTP协议概述 HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序

nginx反向代理: [emerg] invalid number of arguments in

∥☆過路亽.° 提交于 2021-01-12 14:49:39
server {listen 80;server_name localhost:8080;#charset koi8-r;#access_log logs/host.access.log main;location / {#root html;# index index.html index.htm;# proxy_pass http://localhost:8080;}location ~ \.jsp$ {proxy_pass http://localhost:8080;}location ~ \.(html|js|css|png|gif)$ {root D:/Program Files/tomcat/webapps/ROOT;} windows下只需要在 路径两边加双引号即可。 来源: oschina 链接: https://my.oschina.net/u/4272821/blog/4892539

SpringBoot 打 war 包部署应用

◇◆丶佛笑我妖孽 提交于 2021-01-12 12:02:57
1 SpringBoot打war包的4个步骤 设置打包方式,默认是jar方式。 <!--war包[1] 默认是jar包形式--> < packaging > war </ packaging > 移除内置tomcat依赖。因为war包是要发布到外部servlet容器中的,不再需要springboot web模块的内置Tomcat。 <!--引入springboot web模块--> < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-web </ artifactId > <!--打war包需要移除springboot web模块中的内置tomcat依赖--> < exclusions > < exclusion > < groupId > spring-boot-starter-tomcat </ groupId > < artifactId > org.springframework.boot </ artifactId > </ exclusion > </ exclusions > </ dependency > 设置servlet依赖 <!--打war包需要添加外部servlet依赖--> < dependency > <