小编CSc*_*ulz的帖子

从InputStream读取时发生IOException

我在从Android平台上的InputStream读取时遇到了一个奇怪的问题.我不确定这是Android特定的问题,还是我一般都做错了.

唯一特定于Android的是此调用:

InputStream is = getResources().openRawResource(R.raw.myfile);
Run Code Online (Sandbox Code Playgroud)

这将从Android资产返回文件的InputStream.无论如何,这是我遇到问题的地方:

bytes[] buffer = new bytes[2];
is.read(buffer);
Run Code Online (Sandbox Code Playgroud)

当read()执行时抛出IOException.奇怪的是,如果我执行两个连续的单字节读取(或任意数量的单字节读取),则没有例外.例如,这有效:

byte buffer;
buffer = (byte)buffer.read();
buffer = (byte)buffer.read();
Run Code Online (Sandbox Code Playgroud)

任何想法为什么两个连续的单字节读取工作,但一次调用同时读取两个引发异常?该InputStream中似乎罚款... is.available()回报超过一百万个字节(因为它应该).

堆栈跟踪显示在以下行之前的这些行InputStream.read():

java.io.IOException
at android.content.res.AssetManager.readAsset(Native Method)
at android.content.res.AssetManager.access$800(AssetManager.java:36)
at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542)
Run Code Online (Sandbox Code Playgroud)

将缓冲区大小更改为单个字节仍会引发错误.看起来只有在读入字节数组时才会引发异常.

如果我将文件截断为100,000字节(文件最初为:1,917,408字节),它可以正常工作.超过一定大小的文件有问题吗?

任何帮助表示赞赏!
谢谢!

java android inputstream ioexception

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

如何在多个测试中模拟测试PHPUnit中的Web服务?

我试图使用PHPUnit测试Web服务接口类.基本上,这个类调用SoapClient对象.我试图使用getMockFromWsdl此处描述的方法在PHPUnit中测试此类:

http://www.phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubbing-and-mocking-web-services

但是,由于我想从同一个类中测试多个方法,所以每次设置对象时,我都必须设置模拟WSDL SoapClient对象.这会导致抛出致命错误:

Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
Run Code Online (Sandbox Code Playgroud)

如何在多个测试中使用相同的模拟对象,而不必每次都从WSDL重新生成它?这似乎是个问题.

-

有人要求发布一些代码来查看,这里是TestCase中的setup方法:

protected function setUp() {
    parent::setUp();

    $this->client = new Client();

    $this->SoapClient = $this->getMockFromWsdl(
        'service.wsdl'
    );

    $this->client->setClient($this->SoapClient);
}
Run Code Online (Sandbox Code Playgroud)

php phpunit soap web-services

11
推荐指数
1
解决办法
9141
查看次数

在eclipse中为android项目创建jar

大家好我怎样才能创建使用eclipse在android中创建的项目的jar文件.我已经用这种方式完成了项目 - >右键单击 - >导出 - >选择构建器 - > antbuilder - >确定然后在此过程之后将创建build.xml.在bulid.xml上,我将创建新的构建器.

  • 右键单击项目 - >属性 - >选择新建 - >给出build.xml和项目路径,然后按"确定",将创建新的构建器.
  • 现在从项目属性中选择该构建器,然后按确定.
  • 现在构建您的项目,您的jar将在bin文件夹中创建.

我已经按照上面的过程但在bin文件夹中找不到我的jar.我可以看到我的build.xml已创建,所有进程都顺利但仍未创建jar.谁能告诉我怎么能这样做?

我的build.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
              Any modifications will be overwritten.
              To include a user specific buildfile here, simply create one in the same
              directory with the processing instruction <?eclipse.ant.import?>
              as the first entry and export the buildfile again. -->
<project basedir="." default="build" name="testtttttttttt">
    <property environment="env"/>
    <property name="debuglevel" value="source,lines,vars"/>
    <property …
Run Code Online (Sandbox Code Playgroud)

java eclipse android jar

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

在詹金斯的Sonar跑步者执行期间出现错误500

在Jenkins上运行sonarqube独立分析时出现以下错误.sonarqube扫描仪能够识别要分析的文件,并能够很好地分析它们,但问题是它何时尝试将项目发布到仪表板.

当我在浏览器中打开URL http:// vv123456:9000/api/ce/submit?projectKey = pkey&projectName = pname时,它会显示"{"errors":[{"msg":"需要HTTP方法POST}}] }",这意味着sonarqube webservice很好.

Jenkins构建错误:

ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
    at org.sonar.runner.api.Runner.execute(Runner.java:100)
    at org.sonar.runner.Main.executeTask(Main.java:70)
    at org.sonar.runner.Main.execute(Main.java:59)
    at org.sonar.runner.Main.main(Main.java:53)
Caused by: org.sonarqube.ws.client.HttpException: Error 500 on [http://vv123456:9000/api/ce/submit?projectKey=pkey&projectName=pname][1]
    at org.sonarqube.ws.client.BaseResponse.failIfNotSuccessful(BaseResponse.java:34)
    at org.sonar.batch.bootstrap.BatchWsClient.failIfUnauthorized(BatchWsClient.java:99)
    at org.sonar.batch.bootstrap.BatchWsClient.call(BatchWsClient.java:69)
    at org.sonar.batch.report.ReportPublisher.upload(ReportPublisher.java:172)
    at org.sonar.batch.report.ReportPublisher.execute(ReportPublisher.java:127)
    at org.sonar.batch.phases.PublishPhaseExecutor.publishReportJob(PublishPhaseExecutor.java:64)
    at org.sonar.batch.phases.PublishPhaseExecutor.executeOnRoot(PublishPhaseExecutor.java:51)
    at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:86)
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
    at …
Run Code Online (Sandbox Code Playgroud)

jenkins sonarqube

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

仅向特定活动发送广播

我有一个Activity在方法中创建一个带有IntentFilterBroadcastReceiver: onCreate(...)

IntentFilter iFilter = new IntentFilter("action");

receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

    }
};

registerReceiver(receiver, iFilter);
Run Code Online (Sandbox Code Playgroud)

另一方面是IntentService,它将发送一些数据:

Intent intent = new Intent(getApplicationContext(), receiver.class);
intent.setAction("action");

[...]

sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用.没有收到广播.
我的服务类是在一个android lib中,也许这会给你带来麻烦.

感谢您的任何建议.

android intentfilter broadcastreceiver intentservice

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

SonarQube - 结合声纳方式,FindBugs,PMD和Checkstyle,无需重复

我正在寻找SonarQube与FindBugs,PMD和Checkstyle插件的最佳实践.

  1. SonarQube的默认质量配置文件"声纳方式"中的规则与插件的规则有何关系?它们是完全不同的规则还是Sonar方式包含这些插件中最重要的规则?
  2. 组合这些规则集的最佳方法是什么?我怎样才能避免重复检查?
  3. Sonar v.3.x包含一个"带有Findbugs的声纳方式"配置文件.我在v.4.5.1中找不到 - 发生了什么事?

sonarqube sonarqube-4.5

10
推荐指数
1
解决办法
8989
查看次数

使用管道插件在jenkins 2.0上安装节点

我正在运行以下jenkinsci/jenkins:2.0-rc-1docker 镜像来试用jenkins 2.0和"管道"视图.

我似乎无法安装节点.这是我的管道脚本:

node {
    //tool([name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'])
    sh 'echo $(whoami)'
    sh 'node -v'
}
Run Code Online (Sandbox Code Playgroud)

运行时的响应是:

[ci] Running shell script
+ whoami
+ echo jenkins
jenkins
[Pipeline] sh
[ci] Running shell script
+ node -v
/../durable-3b0b1b07/script.sh: 2: /../durable-3b0b1b07/script.sh: node: not found
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

  • jenkins NodeJS工具(与自由式作业一起使用时可正常工作)

  • 登录到docker容器并手动安装节点,对于同一个用户:

在此输入图像描述

更新:

基于Jesse Glick的回答,我将结果添加到我的脚本中PATH:

node { 
    def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'
    env.PATH = "${nodeHome}/bin:${env.PATH}"
    sh 'npm install'
}
Run Code Online (Sandbox Code Playgroud)

groovy node.js jenkins-pipeline jenkins-2

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

Symfony 2依赖注入实体函数

我在看http://symfony.com/doc/2.0/cookbook/service_container/parentservices.html

newsletter_manager:
    class:     %newsletter_manager.class%
    parent: mail_manager
    calls:
        - [ setFilter, [ @another_filter ] ]
Run Code Online (Sandbox Code Playgroud)

我应该能够将服务注入函数调用(如果我不理解错误).但是当我尝试自己的项目时,

myapp.userBridge:
    class: ...\NotesBundle\Bridge\UserBridge
    arguments:
        - '@doctrine.orm.entity_manager'
myapp.user:
    class: ...\UserBundle\Entity\User
    calls:
        - [ initUserNotesBundle, [ @myapp.userBridge ] ]
        - [ cleanupUserNotesBundle, [ @myapp.userBridge ] ] 
Run Code Online (Sandbox Code Playgroud)

但是当调用该函数时(Doctrine 2生命周期回调:PrePersist)

public function initUserNotesBundle(UserBridge $userBridge) {
    $userBridge->prePersistUser($this);
}
Run Code Online (Sandbox Code Playgroud)

它给

Catchable Fatal Error: Argument 1 passed to ...\UserBundle\Entity\User::initUserNotesBundle()
must be an instance of ...\NotesBundle\Bridge\UserBridge, none given,
called in ...\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line 1540
and defined  in ...\UserBundle\Entity\User.php line 319
Run Code Online (Sandbox Code Playgroud)

dependency-injection symfony doctrine-orm

9
推荐指数
1
解决办法
6076
查看次数

继承表单或向每个表单添加类型

我正在寻找一种简单的方法来为每个表单添加一组字段.

我找到了一种扩展AbstractTypebuildForm方法,并使用该方法添加更多字段.
在创建表单时,我给出了我的新类型的名称(如何创建自定义表单字段类型).

在我看来,这是一种简单的方法,但每种形式仅限于一种类型.

是否有更好的方法来实现这样的目标?
我已经阅读了symfony的食谱,但我只找到了如何扩展现有表单而不是如何使用我的字段创建自己的表单"模板".

symfony-forms symfony silex symfony-2.4

9
推荐指数
2
解决办法
7737
查看次数

gitlab 6.0.2 Jenkins CI服务没有显示

我有一个gitlab服务器版本"Gitlab 6.0.2 10b0b8f".我想连接"Jenkins CI"用于构建目的.为此,我关注 - http://doc.gitlab.com/ee/integration/jenkins.html.但在项目服务中,我无法看到"Jenkins CI".只有我能看到"Gitlab CI".你能帮我么.任何例子都会受到批评.

gitlab jenkins-cli gitlab-ci

9
推荐指数
1
解决办法
4583
查看次数