我们正在从Subversion转换为Git,而我在Git中遇到的一件事就是切换分支的方法.
我的理解是,在命令行和Eclipse中使用EGit时,切换到不同的分支会将Eclipse工作区文件夹的内容替换为所需分支的内容.这意味着任何时候只能打开一个分支.
在SVN中,我可以安排我的Eclipse工作区类似于:
Workspace/
Project1Branch/
Project2Branch/
Project3/
Project4Branch/
Run Code Online (Sandbox Code Playgroud)
是否可以在同一个Eclipse/Egit工作区(或任何其他环境)中同时打开多个Git分支?
我需要在我的java webapp中阅读来自第三方公开提供的YouTube视频的隐藏字幕文本,即我没有上传内容.
虽然YouTube数据API的v2 限制了对上传视频的用户的字幕信息的访问权限,但除了这一段数据之外,访问除了这一项之外的所有内容似乎是一个非常奇怪的限制.我希望在API的v3中删除此限制,但现在对隐藏式字幕的唯一引用是一种布尔方法,用于确认CC是否附加到视频.即便是所有者现在也无法下载它.(谷歌至少会把它添加回来吗?)
Boolean hasCaptions = video.getContentDetails().getCaption()
Run Code Online (Sandbox Code Playgroud)
使用YouTube Data API v3(使用Google Java API客户端),我能够查找,验证和检索YouTube资源(视频,播放列表,频道等).我可以做几乎所有API提供的东西我只是无法读取实际的标题文本.
我还尝试了未发布的定时文本链接解决方法,但这是不一致的,不适用于较新的内容,并且在其覆盖的内容中有许多编码错误.
我想知道是否有人知道从java(不是.js插件)中检索YouTube视频中的字幕文本的方法?
[最糟糕的情况是,有没有人知道一个图书馆,它允许我像浏览器一样以编程方式与YouTube互动,并允许我点击屏幕上的成绩单按钮,我可以从那里提取成绩单?Prowser不允许点击交互,JxBrowser是$ 1,300 +]
下面的代码工作正常,让我得到所有的视频数据,所以这是我需要帮助的最后一步.我把它包括在这里,以防它对任何需要这么做的人都有帮助.
// Build a YouTube resource
YouTube youtube = new YouTube.Builder(new NetHttpTransport(),
new JacksonFactory(),
new HttpRequestInitializer())
.setApplicationName("caption-retrieval")
.build();
// Create the video list request, it should only return one
// result
YouTube.Videos.List listVideosRequest = youtube.videos().list("id, snippet, contentDetails");
listVideosRequest.setKey(API_KEY));
listVideosRequest.setId(VIDEO_ID);
// Request is executed …
Run Code Online (Sandbox Code Playgroud) 我们已经在Struts 2.1.8上运行了一段时间,并且所有Struts操作都按预期工作,即strref操作的href是使用没有扩展名的操作名称呈现的.
以下是设置链接的JSP代码:
<ul id="top_menu">
<li id="itemHome" class="active"><s:a action="viewHome">Home</s:a></li>
<li><s:a action="viewSearch">Search</s:a></li>
<li><s:a action="viewBookMarks">My Bookmarks</s:a></li>
<li><s:a action="viewSupport">Support</s:a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
正确地呈现给链接http://localhost/viewHome
,http://localhost/viewSearch
2.1.8下,等等.
我们刚刚升级到2.2.1的Struts(一个已检查从这个高达v2.3.4.1所有版本)和现在看到的Struts动作链接被渲染为http://localhost/viewHome.action
,http://localhost/viewSearch.action
等等.
我的研究表明,一般建议的解决方案是使用
<constant name="struts.action.extension" value=""/>
Run Code Online (Sandbox Code Playgroud)
在struts.xml中删除.action后缀.虽然这会使URL正确呈现,但却会导致意外的副作用.Struts现在认为每个URL都是一个动作,包括对.css,.png等的请求.
我在web.xml中的过滤器映射没有改变.虽然它向/ Struts发送/*但我们在2.1.8下没有看到这种行为
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
为了抵消这一点,我必须使用excludePattern来阻止Struts尝试将这些请求视为操作.
<constant name="struts.action.excludePattern" value="/index.html,/images/.*,/js/.*,/css/.*"/>
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但最后一个障碍是我的日志充满了Struts标记请求的错误,这些请求正在作为Struts操作处理.当我将这些URI添加到排除模式时,Struts Dojo标记似乎在某些页面中不起作用.
受影响的struts.xml部分是:
<constant name="struts.devMode" value="true" />
<!-- Set URL's to have no .action extension -->
<constant name="struts.action.extension" value=""/>
<constant name="struts.action.excludePattern" value="/index.html,/images/.*,/js/.*,/css/.*"/>
Run Code Online (Sandbox Code Playgroud)
而日志中Struts错误的一个例子是:
2012-09-26 17:12:57,984 [http-bio-8080-exec-9] ERROR org.apache.struts2.dispatcher.Dispatcher- Could not find action …
Run Code Online (Sandbox Code Playgroud) 我在Tomcat 6.0.35服务器中的两个应用程序中出现内存泄漏,这些应用程序"无处不在".一个应用程序是Solr,另一个是我们自己的软件.我希望有人之前看过这个,因为过去几周我一直在发生这种情况,我必须在生产环境中继续重启Tomcat.
它出现在我们的原始服务器上,尽管事实上没有触及与线程或数据库连接操作相关的代码.由于这个应用程序运行的旧服务器已经退役,我将网站迁移到一个新的服务器和一个"更清洁"的环境,其想法将清除任何遗留的东西.但它仍在继续发生.
就在Tomcat关闭catalina.out之前,日志中充满了以下错误:
2012-04-25 21:46:00,300 [main] ERROR org.apache.catalina.loader.WebappClassLoader- Web应用程序[/ AppName]似乎已经启动了一个名为[MultiThreadedHttpConnectionManager cleanup]的线程,但未能将其停止.这很可能造成内存泄漏.
2012-04-25 21:46:00,339 [main] ERROR org.apache.catalina.loader.WebappClassLoader- Web应用程序[/ AppName]似乎已经启动了一个名为[com.mchan ge.v2.async.ThreadPoolAsynchronousRunner $的线程PoolThread-#2]但未能阻止它.这很可能造成内存泄漏.
2012-04-25 21:46:00,470 [main] ERROR org.apache.catalina.loader.WebappClassLoader- Web应用程序[/ AppName]仍在处理尚未完成的请求.这很可能造成内存泄漏.您可以使用标准Conte xt实现的unloadDelay属性来控制请求完成所允许的时间.
在迁移期间,我们从Solr 1.4-> Solr 3.6开始尝试解决问题.当上面的错误开始填充日志时,下面的Solr错误紧随其后10-15次,然后tomcat停止工作,我必须关闭并启动才能让它响应.
2012-04-25 21:46:00,527 [main] ERROR org.apache.catalina.loader.WebappClassLoader- Web应用程序[/ solr]创建了一个类型为[org.a pache.solr.schema.DateField]的密钥的ThreadLocal. ThreadLocalDateFormat](value [org.apache.solr.schema.DateField$ThreadLocalDateFormat@1f1e90ac])和类型为[org.apache.solr的值].schema.DateField.ISO8601CanonicalDateFormat](value [org.apache.solr.schema.DateField$ISO8601CanonicalDateFormat@6b2ed43a])但在Web应用程序停止时无法将其删除.这很可能造成内存泄漏.
我的研究提出了很多关于更改管理线程的代码的建议,以确保它们能够扼杀数据库池连接等,但这段代码在近12个月内没有改变.Solr应用程序崩溃了,那是第三方所以我的想法是这是环境的(jar冲突,版本控制,配置胖指法?)
我的最后一个更改是将java的mysql连接器更新到最新版本,因为早期版本中的池中存在一些内存泄漏错误,但服务器仅在几个小时后再次崩溃.
我刚注意到的一件事是我在Tomcat Web管理器中看到了数千个会话,但这可能是一个红色的鲱鱼.
如果有人看到这个任何帮助非常感谢.
[编辑]
我想我找到了问题的根源.毕竟这不是内存泄漏.我接管了另一个开发团队的应用程序,该团队使用c3p0通过Hibernate进行数据库池化.c3p0有一个错误/特性,如果你没有释放数据库连接,一旦使用所有连接(通过MaxPoolSize:默认值为15),c3p0就可以进入等待状态.它将无限期地等待连接变为可用.因此我的摊位.
我首先从25-> 100增加了MaxPoolSize,我的应用程序运行了几天没有挂起,然后从100-> 1000,从那以后(超过2周)它一直运行稳定.
这不是完整的解决方案,因为我需要找出它为什么用完池连接所以我还将c3p0的unreturnedConnectionTimeout设置为4hrs,这对所有连接强制执行4小时的时间限制,无论它们是否处于活动状态.如果它是活动连接,它将关闭它并再次重新打开.
不漂亮,c3p0不推荐它,但它给了我一些喘息的空间来找出问题的根源.
注意:将c3p0与Hibernate一起使用时,设置存储在persistence.xml文件中,但并非所有设置都可以放在那里.某些设置(例如unreturnedConnectionTimeout)必须放在c3p0.properties中
我有一个全新的Macbook Pro with Lion(10.7.4)和MySQL(5.5.24).CLI工作正常,但是当我安装MySQL Workbench(5.2.40)时,UI没有响应.
我能得到的唯一回应是管理连接将突出显示并允许我在鼠标位于正确位置上方大约一英寸处时选择它.
我可以正常创建新连接并连接到数据库,但无法关闭选项卡.
此行为不适用于"数据建模"或"服务器管理"部分.
我对Linux上的MySQL Workbench非常熟悉,但这个Mac问题令我感到茫然.
任何帮助是极大的赞赏.