问题标签 [codebase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
672 浏览

php - 重复的 HTML 如何以非重复的方式在您的代码库中表示?

大型网站中的大多数 HTML 都是跨页面复制的(页眉、页脚、导航菜单等)。您如何设计您的代码,以使所有这些重复的 HTML 实际上不会在您的代码中重复?例如,如果我想将导航链接从 a 更改<ul>为 a <ol>,我只想在一个文件中进行更改。

以下是我看到的一个特定代码库如何处理这个问题。每个页面的代码如下所示:

但我对这种方法感到不舒服(部分原因是开始标签与结束标签不在同一个文件中)。

有没有更好的办法?

我主要使用 PHP 网站,但我有兴趣听到其他语言的解决方案(我不确定这个问题是否与语言无关)。

0 投票
3 回答
7130 浏览

java - rmi 类找不到异常

我使用 java rmi 编写了一个简单的项目并导出到一个可执行的 jar 文件。当我尝试运行它时,有时我会遇到异常,有时它会起作用。当我指定 -Djava.rmi.server.codebase=file:serverClasses/ 时,它似乎没有正确创建 jar 文件。这是堆栈跟踪:

该程序似乎无法识别代码库。就我而言,所有文件都是本地文件。有谁知道是什么问题?谢谢

0 投票
2 回答
1395 浏览

.net - Assembly.Load(Byte[]) 和 Assembly.Location/Assembly.Codebase

我正在尝试加载程序集而不锁定文件。这些程序集可能是第三方程序集,因此我们不一定有权访问代码,其中一两个使用 Assembly.Location 从它们的目录中读取文件,这些文件可能依赖于它们。

我知道你可以通过影子复制来做到这一点,但让它正常工作真的很痛苦,某些论坛上的一些用户建议将程序集加载到字节数组中并使用 Assembly.Load(Byte[]) 重载。这在其中一个程序集尝试访问其父目录中的文件之前非常有效,因为 Assembly.Location 返回一个空字符串,而 Assembly.Codebase 返回加载程序集的应用程序的位置。

我能做些什么来以某种方式设置我正在加载的程序集的 Codebase 或 Location 属性吗?在 Codebase 和 Location 的 MSDN 文档中,它们被定义为可覆盖的属性——这是否意味着我可以从托管应用程序中覆盖它们?

0 投票
2 回答
613 浏览

codebase - 您如何在多个代码库之间同步更改?

假设我想创建一个以不同名称、不同 UI 和一些更改功能命名的聊天应用程序的衍生产品。如何将这些之间的同步更改为 80% 相同的代码库?

编辑:已经使用 git。

0 投票
2 回答
6890 浏览

java - 无法为 Intranet 小程序配置 AllPermission。任何人都可以帮忙吗?

经过大量阅读和测试后,我无法通过 codeBase 授予选项授予 Intranet 小程序的所有权限。此小程序需要完全权限,因为它必须访问 OCR 读取器(也将图像文件写入 HDD)和其他此类外部设备的驱动程序库。

我已经配置了我的 java.policy 文件并添加了以下内容:

grant codebase "http://myIntranetServer/-" { permission java.security.AllPermission; };

在控制台中重新加载策略文件,甚至重新启动浏览器后,我的许多操作都收到 java.security.AccessControlException:access denied,包括读取默认情况下未授予的“user.name”系统属性。

对于调试,我还尝试了默认授予所有权限并且它可以工作,所以我的问题基本上与 de codeBase 选项有关。我正在使用 JRE1.6-u17 运行 Windows 7 和 linux 客户端,并且两者具有相同的行为。

任何人都可以帮忙吗?

提前致谢,

马德拉A

0 投票
4 回答
5100 浏览

ruby-on-rails - 从同一个 Rails 代码库运行多个站点?

我有一个客户想要将他们在一个利基市场取得成功的 Rails 应用程序应用到另一个类似的利基市场。这个应用程序的新实例一开始将非常相似:所有相同的功能、不同的徽标和颜色。但是,如果新站点成功,它将不可避免地需要不应该应用于原始站点的重大自定义。同时,如果修复了错误并对一个应用程序进行了改进,那么两个应用程序应该能够共享这些改进。

任何人都可以提出解决此问题的策略或资源吗?如何使适用于这两个应用程序的更改不会花费更长的时间来测试和实施?

是的,我知道答案涉及 SCM、插件、gem 和 Rails 引擎。这些工具将会并且正在被使用。但我想知道何时以及如何使用这些工具来解决这个问题。

也欢迎链接。


这个问题与以下问题不同:

多个网站在同一个代码库上运行? 在我的问题中,我没有运行具有不同设置的完全相同的应用程序。

您如何在多个代码库之间同步更改?我在问一个类似的问题,但我特别问的是 Rails 应用程序。

0 投票
4 回答
607 浏览

c# - 如何使用 C# 调试器(或其他任何东西)检查开源应用程序中 GUI 事件期间发生的情况?

想象一下,你得到了一个用 C# 编写的很棒的应用程序,它有完整的源代码。因此,您想弄清楚当您执行用户事件时会执行哪些方法,例如按下按钮或按下热键或其他任何方法。代码库太大了,以至于您不想手动查找代码的相关部分,例如跟踪该按钮的事件处理程序。

那么,是否有一种简单的自动化方法来获取某种从时间 T(即我按下按钮时)开始执行的方法的日志?您能否解释和/或提供专门针对这种情况的文章的链接?

0 投票
2 回答
2191 浏览

java - java.rmi.UnmarshalException:无法通过服务器拉取客户端类

我在两台机器上设置了一个 RMI 客户端/服务器,当服务器不需要客户端定义的类时,它们在简单的情况下工作正常。但是,当我需要使用在客户端定义的类时,我无法让服务器解组这些类。我怀疑这是我java.rmi.server.codebase作为参数传递给客户端应用程序的属性的问题。我遵循了 Sun 的 RMI 教程跟踪,我认为我已经完全遵循了这些步骤,只是在执行客户端和服务器时我没有指定类路径参数,因为它们在根包目录正上方的目录中执行(但是我也尝试过没有影响)。

我在尝试执行下面详细描述的不同客户端组合时遇到的异常都是相同的:

RmiServer exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: test.MyTask at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:353) at sun.rmi.transport.Transport$1.run(Transport.java:177) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132) at $Proxy0.execute(Unknown Source) at test.myClient.main(myClient.java:32)

详情如下:

我的客户端/服务器 rmi 设置在路由器后面的家庭网络上。路由器分配给我将调用的静态 IP 地址myhostname。在指向正确机器的路由器中设置了适当的端口映射。

角色、机器、操作系统、IP 地址:

server, venice, linux ubuntu 9.10, 10.0.1.2
client, naples, mac os x leopard, 10.0.1.4

我在里面启动服务器端如下/home/andrews/workspace/epsilon/bin

1 在默认端口 1099 上启动注册表:

venice% rmiregistry &

2 在端口 2001 上启动 Web 服务器,指向通用接口的代码库:

venice% java webserver/ClassFileServer 2001 /home/andrew/workspace/epsilon/bin

3 注册服务器对象的启动服务器应用程序(test/myServer 中的主类):

venice% java -Djava.rmi.server.codebase="http://myhostname:2001/" -Djava.security.policy=server.policy -Djava.rmi.server.hostname=myhostname test/myServer &

现在里面的客户端/Users/andrews/Development/Java/workspace/epsilon/bin

1启动一个本地Web服务器,可以将客户端类服务器提供给服务器(不确定是否需要,但我添加了我尝试过,但仍然没有成功;我已将端口映射添加到2001的路由器到venice,对于2002 年至naples)

naples$ java webserver/ClassFileServer 2002 /Users/andrews/Development/Java/workspace/epsilon/bin/

尝试运行客户端(注意:我没有指定-cp参数,因为客户端在根包目录的正上方执行):

1 使用 http 主机名尝试 #1

naples$ java -Djava.rmi.server.codebase=http://10.0.1.4:2002/ -Djava.security.policy=client.policy test.myClient myhostname

注 1:最后的myhostname参数传递给客户端,以便它解析为服务器的 rmi 主机名。

注意2:我也尝试过使用localhost:2002而不是10.0.1.4:2002

注意 3:我尝试使用myhostname:2002因为myhostname分配给路由器并且我有正确的端口映射设置,这个地址应该解析为naples而不是venice

2尝试#2:

naples$ java -Djava.rmi.server.codebase=file:/Users/andrews/Development/Java/workspace/epsilon/bin/ -Djava.security.policy=client.policy test.myClient myhostname

注1:代码库url格式是正确的,我创建了一个小程序将当前文件目录路径转换为url并使用它。使用file:///Users...具有相同的效果。

其他注意事项:

1 我的服务器和客户端策略文件正确指定了路径,因为我已经用好的和坏的路径测试了这个设置,并且得到了坏路径的安全异常

2 如果我不使用客户端定义的对象,则此设置有效,客户端正确连接到服务器并且服务器执行。

3 当我将客户端类放在服务器的类路径中的服务器上时,一切正常。

感谢所有帮助。

0 投票
2 回答
5611 浏览

.net - 使用app.config 中的元素

我打算在我的 .NET 3.5 Windows 应用程序的 bin 文件夹以外的文件夹中保留几个 dll。我不确定如何使用代码库元素或探测元素来指定正确的路径。这就是我现在在 app.config 文件中的内容,

我明白了,在运行时无法加载程序集错误。看来我在配置文件中做错了什么。SharedFolder 是添加到项目中的文件夹。

0 投票
1 回答
200 浏览

java - RMI 激活奇怪问题

我正在尝试让 RMI 可激活服务器工作 - 但到目前为止还没有运气。实际上服务器似乎在运行,但客户端触发了一个奇怪的异常。

我有3个项目:

  • 客户
  • 常见的
  • 服务器

常见的是客户端和服务器之间的共享代码(例如远程接口)。

我遵循的步骤(一直在调整本教程):

  • 启动注册表 --> 确定
  • 运行 rmid --> 确定
  • 开始服务器设置 --> 确定
  • 启动客户端-> BOOM!激活失败,因为在服务器线程中找不到带有 NoClassDefFoundError 的公共类。

我在服务器的代码库中包含了公共类文件,因此这些类/接口应该对服务器可用。它在远程接口本身上消失了——所以唯一的选择似乎是将所有公共代码拉到服务器代码中,但是这样客户端代码将不得不知道服务器代码,这很糟糕。

我做了一些浏览,看起来这个人在这里遇到了完全相同的问题。

看起来在这两种情况下,当可激活服务器引用其他包中的类时都会发生这种情况(在我的情况下,它是第三方链接中的自定义包)。

我真的在这里不知所措 - 所以任何想法都会受到赞赏!

编辑:一些附加信息 - 我正在尝试调试问题。客户端似乎很好地检索了主题中的远程对象(引用不为空)。一旦调用远程接口的方法(客户端知道该接口),就会抛出异常。如果激活发生在第一个方法调用上,那么这很明显 - 但不太确定它何时实际尝试激活远程对象/服务器。