eclipse server服务中的server.xml与本地tomcat中的server.xml配置context标签导致的重复启动上下文<Context>的问题

Tomcat7部署Dubbo服务,端口被占用问题

[ERROR][2019-07-11 14:05:14][org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:307)]Context initialization failed
com.alibaba.dubbo.rpc.RpcException: Fail to start server(url: dubbo://192.168.1.28:20891/com.app.dubboservice.order.service.DubboOrderService?anyhost=true&application=consumer-of-e-commerce&channel.readonly.sent=true&codec=dubbo&default.accepts=100&default.timeout=10000&default.version=dongge123&dubbo=2.5.3&heartbeat=60000&interface=com.app.dubboservice.order.service.DubboOrderService&methods=addOrderForFixedPrice,checkOrderDatasouce,addMailDetal,addOrderForPerson,queryUserHuodongOrder,queryOrderNumberByUserIdAndGoodsId,updateOrderAndUpdateGoodOrder_Exam,sendManageGoodsService,closeOrder,ViewOrderByOrderNum_Exam,addOrderForMakeExam,QueryMyOrders_App,queryUserGoodsFreeRenewOrderNbList,ViewOrderByOrderNum,queryPointOrders,ViewOrderDetail,queryOrderNumberByOrderId,QueryMyOrdersNum,updateOrderAndUpdateGoodOrder,updateOrderForMake,addOrdersForActivity,queryOrderListByUserIdAndProjectIds,ViewOrderByOrderIdForLeak,updateOrderForWeixin,queryOrderListByUserIdAndGoodsIds,getInvoiceListByOrderNo,getOrderCountByCondition,queryIsBuyGoodsToLiCai,getcanInvoiceList,QueryMyOrders,queryUserGoodsOrderApp,queryOrderCountByCondition,queryIsBuyGoodsByProject,queryUserGoodsOrder,AddOrders,orderList_toInvoice,queryUserGoodsOrderByOrderNumber,updateOrderToDeleteStatus,AddOrderForBfec,addOrder,QueryMyStayOrderNum,queryUnpaidOrder,handOrderOtherForNqq,checkAndFindRealOrderNumber,addInvoice,updateOrderAndUpdateGoodOrder_Renewal,findUserGoodsRenewalOrder,addOrderForHuodong,queryOrderListByUserIdAndGoodsId,queryGoodsOrderList,updateOrder,queryUserGoodsFreeRenewOrderNb,updateOrderNumber,updateHuodongOrder,ViewOrderDetail_App,queryOrderListByUserIdAndGoodsIdStr,getBatchOrderInfo,queryOrderListByUserIdAndGoodsId2&pid=4176&side=provider&timestamp=1562825114261) 
	Failed to bind NettyServer on /192.168.1.28:20891, cause: Failed to bind to: /0.0.0.0:20891
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer(DubboProtocol.java:289)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.openServer(DubboProtocol.java:266)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.export(DubboProtocol.java:253)
	at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:56)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:55)
	at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
	at com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:153)
	at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:107)
	at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:54)
	at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:53)
	at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
	at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:485)
	at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:281)
	at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:242)
	at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:143)
	at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:109)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:327)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:941)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:475)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1259)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1998)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to bind NettyServer on /192.168.1.28:20891, cause: Failed to bind to: /0.0.0.0:20891

解决方案:第一种

修改tomcat,D:\tomcat\tomcat7_8380\conf\server.xml文件

修改内容:

在host中修改autoDeploy为false,添加deployOnStartup="false"

<Host appBase="webapps" autoDeploy="false" deployOnStartup="false" name="localhost" unpackWARs="true">

 

解决方案:第二种

保证eclipce和本地tomcat中的server.xml,两个文件中之能有一个

<Context docBase="D:\tomcat\tomcat7_8090\webapps\dptweb" path="/dptweb" reloadable="true" source="org.eclipse.jst.jee.server:dptweb"/>

该上下文在哪个server.xml中都可以,建议在eclipse servers中,因为每次构建项目,问题tomcat中的server.xml都会被重置

 

 

产生原因:

 

若autoDeploy="true",则两次部署web应用程序。

第一次因server.xml中的Context配置而被部署(因为deployOnStartup="true"),

第二次因为autoDeploy="true"而发生自动部署(默认情况下,在没有显示Context的这些属性时,它们的默认值都是true)。

显示设置autoDeploy="false",避免在server.xml中增加Context配置时两次部署相同的web应用程序

 

注意::::最简洁的办法就是Server locations默认选项不做任何修改

Server locations中选项解释如下,

选项1:是use workspace metadata,即部署到:你的工作空间\.metadata\.plugins\org.eclipse.wst.server.core中;
选项2:tomcat installation,即部署到你的tomcat安装路径下,也就是tomcat目录下的webapps文件夹中;
选项3:custom location,即自定义路径;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值