小编All*_*lan的帖子

Java等待线程完成

我有一个线程下载数据,我想等到下载完成后再加载数据.有这样做的标准方法吗?

更多信息:

我有一个从URL(序列化POJO)获取数据的Download类.下载是Runnable和Observable.它跟踪下载的字节数和下载大小.我有一个进度条,向用户显示进度.GUI观察下载以更新进度条.

当下载POJO时,我想得到它并转到下一步.每一步都必须等待前一步完成.问题是我想不出一种暂停我的应用程序等待下载线程的方法.下载完成后,我想调用download.getObject(),它将数据作为对象返回.然后我可以投下它并继续进行下一次下载.

我有一个帮助程序类来管理下载的URL并进行所有下载调用.此调用将调用getObject并执行转换.Gui调用helper.getUser().帮助程序启动线程运行,我希望它在完成时"知道",以便它可以返回已转换的对象.

有什么建议/例子吗?我处于这个设计的开始阶段,所以我愿意改变它.

非常感谢你.

更新:

我跟着http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html#get和使用模式来阻止,直到线程完成.代码非常混乱,我不喜欢这种方法.我将继续尝试找到一种"干净"的方式来处理下载过程的工作流程.

java swing multithreading download wait

56
推荐指数
6
解决办法
16万
查看次数

更新JPA实体中的一个字段

我有一个User在一个函数中被赋予系统特权的实体.我有一个网页,您可以从下拉列表中选择用户并将表单提交给服务器.在服务器端,我想只更新该实体的一个字段.

我的用户实体将具有除了设置的一个字段及其id之外的所有对象的默认值.我是否需要findById更新特定字段然后进行合并,或者有没有办法告诉只更新该字段?

jpa

10
推荐指数
2
解决办法
2万
查看次数

JPA Hibernate DBCP Tomcat OutOfMemory

我在我的应用程序的新版本中收到每日OutOfMemory错误.我们为Tomcat分配了1.5 GB的堆.

使用Eclipse Memory分析器(http://www.eclipse.org/mat/),我在最短累积路径下得到了以下内容

org.apache.tomcat.dbcp.pool.impl.CursorableLinkedList$Listable @ 0xa1566cc8  
    _head org.apache.tomcat.dbcp.pool.impl.CursorableLinkedList @ 0xa1566ca8  
      _pool org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool @ 0xa1566c38 
         connectionPool org.apache.tomcat.dbcp.dbcp.BasicDataSource @ 0xa1566980 
             dataSource org.springframework.orm.jpa.JpaTransactionManager @ 0xa0b01760 
                   <Java Local> java.lang.Thread @ 0xa4005900 ajp-8141-5 Thread 
Run Code Online (Sandbox Code Playgroud)

对此的进一步检查显示了许多重复的字符串,这些字符串是Hibernate查询.在我的应用程序主屏幕上,我加载了一个文档列表.查询的副本在堆转储中存在8,241次.

我还注意到org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool中包含1 GB的堆.此文档查询正在加载文档二进制数据.它正在加载的文件大约是1MB.这让我怀疑垃圾收集器没有清理List.我们将从查询中删除不必要的数据,但它仍然让我担心对象仍然存在.

我正在使用JPA,Hibernate和Spring.我正在使用 @Transactional(readOnly=true)获取文档列表的方法.这是我的数据源Spring配置:

<jee:jndi-lookup jndi-name="jdbc/MyDB" id="myDataSource"/>

    <bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

        <property name="dataSource" ref="myDataSource"/>
        <property name="persistenceUnitName" value="WebPU"/>
        <property name="persistenceProvider">
            <bean class="org.hibernate.ejb.HibernatePersistence" />
        </property>
        <property name="jpaVendorAdapter">
            <bean
                class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="database" value="SQL_SERVER" />
                <property name="showSql" value="false" />
                <property name="generateDdl" value="false" />
            </bean>
        </property>

    </bean>

     <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat hibernate jpa

8
推荐指数
1
解决办法
1230
查看次数

在VSTS中为多个项目设置多个GIT存储库

我是vsts和git的新手。因此,我可能缺少一些明显的东西,或者不了解vsts的工作原理。

我们的团队将使用集中式工作流程。VSTS中是否有地方可以放置所有存储库?

如果我有超过50个回购协议,其中一些已在许多项目中使用。例如,一个Web服务项目可为一堆不同的应用程序(网站,内部支持应用程序,移动设备等)提供通用数据。

如果在vsts中创建了一个项目,并且需要更改该Web服务和移动应用程序,那么似乎唯一的选择就是直接将git repo导入到该项目中。项目结束时,回购将流向何处?有没有办法在VSTS中建立一个中心位置来容纳所有回购协议?如果是这样,在我的新项目中使用该仓库(及其他仓库)的工作流程是什么?

更新资料

我知道git是分布式的,但是我们仍然需要一个代表最新仓库的仓库。在git书中,这称为“中央”或“祝福”存储库。

由于VSTS为每个项目创建一个单独的存储库。我想知道如何从VSTS管理此工作流程,或者这将是手动过程。

我认为这是一个常见的设置。具有50-100个代码存储库的企业规模的公司。许多可以触及许多回购协议的项目。我想通过VSTS尽可能多地进行管理。

git azure-devops

8
推荐指数
1
解决办法
4122
查看次数

WCF客户端证书停止工作

在阅读了一些MSDN文章后,我的客户端证书和用户名密码适用于我的WCF服务.客户端需要证书以及用户名和密码才能访问我的服务.

最近,证书停止工作,我可以在不提供客户端证书的情况下访问该服务.我正在使用SOAP UI来测试客户端.通常,我必须将客户端证书添加到密钥库,然后指定用于请求的密钥.

最近我设置了一个测试,我没有提供客户端证书.我的conifg中没有任何东西改变了.我有正确的设置吗?

谢谢.

我的绑定配置:

 <wsHttpBinding>
        <binding name="BasicBinding">
          <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Certificate" />
            <message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false" />

          </security>

        </binding>
      </wsHttpBinding>
Run Code Online (Sandbox Code Playgroud)

我的服务:

<service behaviorConfiguration="APIServiceBehaviour" name="Service">
        <endpoint address="api" binding="wsHttpBinding" bindingConfiguration="BasicBinding" name="soap-api" bindingNamespace="https://myserver.com" contract="IAIService" />
        <host>
          <baseAddresses>
            <add baseAddress="https://myserver.com" />
          </baseAddresses>
        </host>
      </service>
Run Code Online (Sandbox Code Playgroud)

行为:

      <serviceAuthorization principalPermissionMode="Custom">
        <authorizationPolicies>
          <add policyType="MyAuthorizationPolicy,MyProject" />
        </authorizationPolicies>
      </serviceAuthorization>

      <serviceCredentials>

        <serviceCertificate findValue="tempSClient" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
        <userNameAuthentication userNamePasswordValidationMode="Custom" includeWindowsGroups="false" customUserNamePasswordValidatorType="MyProject.UserAuth,MyProject" />
      </serviceCredentials>

    </behavior>
Run Code Online (Sandbox Code Playgroud)

.net authentication iis ssl wcf

7
推荐指数
1
解决办法
169
查看次数

WCF中不同服务操作的不同安全性

我正在设计和测试WCF服务并将它们公开为SOAP Web服务.

我的逻辑上划分了我的服务类.我有一个帐户服务.要访问帐户Web服务,您必须提供用户名和密码以及API令牌.我编写了一个自定义类,将UserNamePasswordValidator扩展到taje的身份验证和IDispatchMessageInspector来检查令牌.

一个要求刚刚出现在我们想要提供一些帐户检查的地方,而无需用户进行身份验证.从逻辑上讲,这些操作应保留在帐户服务中.但是,服务行为被配置为需要用户名,密码并且具有IServiceBehavior,其添加IDispatchMessageInspector以检查令牌的所有按摩.

我一直在通过扩展调度程序审查所有不同的扩展点- MicrosoftWCF可扩展性 - Carlos Figueira

我似乎找到了一种只在操作级别应用安全性的方法.或者是一种配置服务的方法,因此某些功能需要安全性/令牌而其他功能则不需要.

我是WCF的新手,所以它可能很简单,但我还没有找到它.如果您知道一篇文章介绍如何以不同方式保护服务的不同部分,或者如果您知道如何,请向我提供一些信息.谢谢.

.net wcf soap web-services

6
推荐指数
1
解决办法
158
查看次数

Java线程管理和应用程序流程

我有一个Java应用程序从我们的服务器下载信息(实体).我使用下载线程下载数据.

下载过程的流程如下:

  1. 登录 - 下载用户实体
  2. 根据用户实体,下载"社区"实体列表和显示
  3. 基于社区下拉选择,下载并在JTree中显示"组织树"
  4. 根据节点选择,下载类别实体并在下拉列表中显示
  5. 根据类别选择,下载子类别实体并在下拉列表中显示
  6. 基于子类别选择下载大数据集并保存

下载发生在一个线程中,因此GUI不会"冻结".它还允许我更新进度条.

我需要帮助来管理这个过程.主要问题是当我下载实体数据时,我必须找到一种方法来等待线程完成,然后再尝试获取实体并转到应用程序流程中的下一步.

到目前为止,我已经使用模态对话框来控制流量.我启动线程,弹出一个模态,然后在线程完成时处理模态.模态/线程是Observer/Observable,线程在完成并对话框处理后更改了一个集合.显示模式有效地停止了应用程序的流程,因此它可以等待下载完成.

我还尝试将所有工作流程移至Observers.该过程中的所有相关GUI都是Observers.每个更新方法等待下载完成,然后调用下一个自己下载的GUI.

到目前为止,我发现这两种方法产生的代码难以理解.我想"集中"这个工作流程,以便其他开发人员在试图遵循它时不会拔掉头发.

我的问题是:您是否有任何建议/示例可以以产生易于遵循的代码的方式管理此类工作流程?

我知道'easy'是一个相对的术语,我知道我的两个选项已经有效,但我想从其他程序员那里得到一些想法,而我还有时间改变它.

非常感谢你.

java swing multithreading

5
推荐指数
1
解决办法
615
查看次数

默认文档未尝试 iis 8.5 中的所有文件

我有一个网站,其默认设置为 IIS 8.5 Windows 2012 R2 上的默认文档。

<system.webServer>
  <defaultDocument enabled="true">
    <files>
      <add value="Default.aspx" />
      <add value="Default.htm" />
      <add value="Default.asp" />
      <add value="index.htm" />
      <add value="index.html" />
      <add value="iisstart.htm" />
    </files>
  </defaultDocument>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

当我浏览到没有文件名的 URL (mysite.com/Content/) 时,IIS 将只尝试 default.aspx,而不会尝试列表中的其他文件 (index.html)。IIS 尝试加载 default.aspx 并且我得到 404。奇怪的是该目录中没有 default.aspx 文件并且 index.html 确实存在。如果我直接浏览到 index.html,页面会正确显示。根据关于默认文档Microsoft 文档,它应该尝试列表中的下一个文件,直到找到存在的文件。

我显式地添加了一个 web.config 文件到子目录

<defaultDocument enabled="true">
  <files>
      <clear />
       <add value="index.html" />
   </files>
 </defaultDocument>
Run Code Online (Sandbox Code Playgroud)

并且 IIS 仍在尝试使用 default.aspx。有没有人遇到过这个?您对为什么这不能按文档工作有任何建议吗?

asp.net iis windows2012

5
推荐指数
1
解决办法
5718
查看次数

允许用户更改网页布局

我有一个网页,允许用户插入带有标签的表单输入对象.当他们添加一个新对象时,我会自动将它添加到一个2列表中,左列是标签,右边是表单控件.

我想让用户更好地控制页面的布局方式.我想知道是否有任何示例,模式或建议可以帮助我实现这一目标.我发现的唯一示例是在Liferay中,您可以在其中选择不同的布局模板,然后根据布局和顺序在该页面上定位portlet.

更新:

我想坚持他们设计的布局.

我已经将表单本身保留了下来.HTML没有持久化,我在请求表单时动态生成它.我想要一种方法来保持表单的布局.

我不是在寻找太详细的东西.主要是思想和建议.

谢谢

html css layout

4
推荐指数
1
解决办法
3413
查看次数

手动管理持久化上下文的技巧

我正在调查使用JPA作为我的数据访问代码.我正在尝试编写业务层和数据访问层,以便它可以在Web应用程序和Java SE应用程序中工作.因此我不能使用容器管理的持久化上下文.我使用JPA的大部分内容都在容器管理环境中显示了示例.

目前,每当我创建服务类的新实例时,我都会获得EntityManagerFactory.对于每个操作(即添加,获取等),我打开一个EntityManager,启动事务执行操作,提交然后关闭EntityManager和EntityManagerFactory.我希望在Java EE环境之外有一个manged持久化上下文的好处.

不使用容器管理上下文时是否有任何最佳实践?是否有任何Java EE独立持久化上下文管理器?有推荐的模式吗?

谢谢,

更新

感谢eveyone的信息.一切都非常有用.

java orm persistence design-patterns jpa

3
推荐指数
1
解决办法
5632
查看次数