小编The*_*boy的帖子

Spring FileUpload的问题

我有以下代码块处理我在Spring MVC Web应用程序中使用的照片的文件上传.我正在使用Spring MVC CommonsMultipartFileResolver来处理文件上传.

if(model.getPhoto() != null){
    if(!model.getPhoto().isEmpty()){
        MultipartFile file = model.getPhoto();
        String fileName = file.getOriginalFilename();
        String filePath = baseDirectory + fileName;
        FileOutputStream fos = new FileOutputStream(filePath);
         try 
         {
            fos.write(file.getBytes());
            agentProfile.setPhotoUri(fileName);
         } 
         catch (IllegalStateException e) 
         {
            System.out.println(e);

         }
         finally   
         {
             fos.close();
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的app-servlet.xml文件中,我有以下代码来配置MultipartFile解析器bean.

 <bean id="multipartResolver"   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 </bean>
Run Code Online (Sandbox Code Playgroud)

我在上传照片时遇到了一些随机问题.

1)如果我上传一张较小的照片,大约3 kb左右,它会成功上传.

2)如果我上传一张更大的照片,它将在目录中创建文件,但大小为0字节,并将给出以下错误消息.

 java.lang.IllegalStateException: File has been moved - cannot be read again
org.springframework.web.multipart.commons.CommonsMultipartFile.getBytes(CommonsMultipartFile.java:112)
com.mmz.admin.mvc.controller.AddAgentController.processFinish(AddAgentController.java:145)
org.springframework.web.servlet.mvc.AbstractWizardFormController.validatePagesAndFinish(AbstractWizardFormController.java:642)
org.springframework.web.servlet.mvc.AbstractWizardFormController.processFormSubmission(AbstractWizardFormController.java:492)
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:265)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Run Code Online (Sandbox Code Playgroud)

我尝试了一些配置Multipart解析器的不同选项,例如将其切换为处理CommonsMultipartFile对象,与普通的 …

java spring file-upload spring-mvc

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

"坏数据"CryptographicException

首先,我只是为了学术目的而编写了以下代码.我说这个的原因是因为我没有将它放在生产环境中,因此我"绕过"了我需要做的一些开销,我只需要能够使用加密/解密字符串下面的代码.我能够做到这一点,但由于某种原因,我开始收到"CryptographicException Bad Data",我不确定是什么原因导致了这个问题.

   private string RSAEncrypt(string value)
    {
        byte[] encryptedData = Encoding.Unicode.GetBytes(value);

        CspParameters cspParams = new CspParameters();
        cspParams.KeyContainerName = _rsaContainerName;
        using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048,cspParams))
        {
            encryptedData = RSA.Encrypt(encryptedData, false);
            return Convert.ToBase64String(encryptedData);

        }

    }



    private string RSADecrypt(string value)
    {

        byte[] encryptedData = Encoding.Unicode.GetBytes(value);

        CspParameters cspParams = new CspParameters();
        cspParams.KeyContainerName = _rsaContainerName;
        using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048,cspParams))
        { 
            encryptedData = RSA.Decrypt(encryptedData,false);
            return Convert.ToBase64String(encryptedData);

        }
    }
Run Code Online (Sandbox Code Playgroud)

它只是在RSADecrypt调用上抛出此异常.

有任何想法吗?我读到了可能与传递给RSA.Decrypt的encryptedData的预期大小有关的地方.

谢谢 }

c# encryption cryptography rsa

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

Java中不推荐使用的Date方法?

使用Java Date实用程序时的真正含义是什么并且已被弃用.这是否意味着不鼓励使用,还是暗示它被禁止?

我猜测使用弃用方法是不好的做法,但我不确定并想知道.

例如,我正在尝试使用如下代码

String date = request.getParameter("date"); 
model.setDate(new Date(date));
Run Code Online (Sandbox Code Playgroud)

当然......这是一个高级示例,但在这种情况下,我的模型使用Date类型,我需要将请求中的日期作为String拉出并使用它创建日期.

我的工作方式很好,但它使用的是不推荐使用的方法.

编辑 - 我已经回去使用了

SimpleDateFormat formatter = new SimpleDateFormat(); 
model.setDate(formatter.parse(request.getParameter("date");



日期的格式为MM/DD/YYY,如07/23/2010,但我收到了ParseException

这可能是什么?

java deprecated simpledateformat parseexception

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

如何判断我正在运行哪个WCF版本?

提出这个问题我觉得有点荒谬,但我从未真正研究过这个问题.我正在尝试确定我所使用的项目的WCF版本是什么?

我看到一些与WCF项目和ServiceModel相关的常见DLL是4.0,但不确定我是否可以做出这个假设.

c# wcf

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

NGINX反向代理与链接Docker容器失败

我有以下内容docker-compose.yml:

node1:
    build: ./node
    links:
        - redis
    ports:
        - "8080"
node2:
    build: ./node
    links:
        - redis
    ports:
        - "8080"
service1:
    build: ./service
    links:
        - redis
    ports:
        - "8383"
redis:
    image: redis
    ports:
        - "6379"
nginx:
    build: ./nginx
    links:
        - node1:node1
        - node2:node2
        - service1:service1
    ports:
        - "80:80"
Run Code Online (Sandbox Code Playgroud)

执行此操作并运行后,docker ps我得到以下内容:

080d9d7dc2e0        dockerworkflow_nginx:latest      "nginx -g 'daemon of   5 minutes ago       Up 5 minutes        0.0.0.0:80->80/tcp, 443/tcp   dockerworkflow_nginx_1
8c25bfdb9d00        dockerworkflow_node1:latest      "nodemon /src/index.   6 minutes ago       Up 6 minutes        0.0.0.0:33023->8080/tcp       dockerworkflow_node1_1 …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx docker docker-compose

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

如何从检查 docker 容器中获取暴露的端口?

假设我使用以下命令启动一个 docker 容器

docker run -d --name my-container -p 1234 my-image
Run Code Online (Sandbox Code Playgroud)

运行docker ps显示该图像的端口绑定是...

80/tcp, 443 /tcp. 0.0.0.0:32768->1234/tcp
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以用来docker inspect获取分配要映射到的端口1234(在本例中为 32768)?

类似于使用以下命令解析并获取IP地址......

IP=$(docker inspect -f "{{ .Networksettings.IPAddress }} my-container)
Run Code Online (Sandbox Code Playgroud)

我希望能够做类似以下的事情

ASSIGNED_PORT=$(docker inspect -f "{{...}} my-container)
Run Code Online (Sandbox Code Playgroud)

我不确定是否有办法通过 Docker 来做到这一点,但我想有一些命令行魔法(grep、sed 等)可以让我做这样的事情。

当我跑步docker inspect my-container并查看NetworkSettings......我看到以下内容

"NetworkSettings": {
        ...
        ...
        ...
        "Ports": {
            "1234/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "32768"
                }
            ],
            "443/tcp": null,
            "80/tcp": null
        },
        ...
        ...
    },
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望它能够找到 HostPort,而无需我告诉它任何有关端口 1234 的信息(它应该忽略其下面的 443 …

grep sed docker dockerfile

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

C# Environment.GetEnvironmentVariable(...) 不适用于 OSX

我正在 OSX 上运行一个控制台应用程序,它具有以下内容...

public static void main(string[] args)
{
    string mongoEndpoint = Environment.GetEnvironmentVariable("MONGO_ENDPOINT");

    if(string.IsNullOrEmpty(mongoEndpoint))
    {
        _log.Fatal("Invalid Mongo Endpoint");
        throw new Exception("Invalid Mongo Endpoint");
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经向我添加了一个MONGO_ENDPOINT环境变量~/.bash_profile,当我运行echo $MONGO_ENDPOINT它时会输出正确的值。

但是,当我在 OSX 中从 Xamarin Studio 运行我的控制台应用程序时,它返回 null。

我尝试运行以下命令以查看是否都是环境变量,并返回了正确的值。

Console.Out.WriteLine(Environment.GetEnvironmentVariable("HOME"));
Run Code Online (Sandbox Code Playgroud)

它输出得/usr/myname很好。

找不到这个环境变量的任何原因?

c# macos mono xamarin

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

如何显示在WPF中拖动的项目?

我一直在研究WPF应用程序,它本质上是一个WYSIWYG编辑器,并且正在使用拖放功能.我有拖放功能,但需要使其更直观和用户友好.部分内容涉及实际显示被拖动的项目.最简单的方法是什么?我拖的项目并不特别,但我甚至不确定在哪里寻找如何做到这一点.

c# wpf drag-and-drop

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

将枚举绑定到DataGrid ComboBox视图

我正在使用WPF应用程序,我正在开发一个DataGrid,它包含了必须对事件做出反应的动态内容的使用等.

我有包含DataGrid的View的以下ViewModel

public class HiddenFieldPanelViewModel
{
    public List<HiddenFieldComponent> HiddenFieldList { get; set; }
    public HiddenFieldComponent Component { get; set; }
    public bool IsVisible { get; set; }
    public enum FieldTypes{Constant,Variable}
    public HiddenFieldPanelViewModel()
    {
        HiddenFieldList = new List<HiddenFieldComponent>();
        IsVisible = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

此模型上适用于此示例的唯一属性是以下枚举属性

public enum FieldTypes {Constant,Variable}
Run Code Online (Sandbox Code Playgroud)

填充DataGrid时我需要做的是将枚举类型绑定到DataGrid单元格中的下拉列表,这里是添加它之后的一个DataGrid集合项的示例 在此输入图像描述

例如,在上图中,我希望它具有FieldTypes枚举中的两个Enum值.

在我的XAML中,我指定了以下内容:

<DataGridTemplateColumn Header="Field Type" CanUserResize="False">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox Height="20" SelectedIndex="0" ItemsSource="{Binding Path=FieldTypes}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <Label Content="{Binding Path=Value}"></Label>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

其他列正确绑定数据,但这不是.

我不确定是否有更好的方法来做到这一点.我还从IValueConverter编写了一个EnumConverter来处理字符串枚举字符串转换(如果需要的话).

谢谢

.net c# wpf

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

Java Spark是否为依赖注入或IoC容器提供任何支持?

在.NET工作之后,我非常精通NancyFX和Web API等微型Web框架对IoC容器的支持.

在像Sinatra这样的Ruby类似框架中(NancyFX基于Sinatra),似乎你有依赖注入的能力.

从我看到的,因为Java spark应用程序作为主要方法运行,似乎你不能传入依赖项或IoC容器.

public class HelloWorld {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}
Run Code Online (Sandbox Code Playgroud)

我很难理解这样的框架在没有支持的情况下如何有用.

如果这个框架没有,那么是否有另一个轻量级框架(Spring不是我记忆中的轻量级框架,但可能已经发生了变化),它确实支持这个吗?

java dependency-injection spark-java

7
推荐指数
3
解决办法
6598
查看次数