問題タブ [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は、重複しない方法でコードベースでどのように表現されますか?

大規模なWebサイトのほとんどのHTMLは、ページ間(ヘッダー、フッター、ナビゲーションメニューなど)で複製されます。この重複するHTMLがすべてコード内で実際に重複しないように、コードをどのように設計しますか?たとえば、ナビゲーションリンクをからに変更したい場合は<ul><ol>1つのファイルでその変更を行いたいと思います。

これが、ある特定のコードベースがこの問題を処理するのを見た方法です。すべてのページのコードは次のようになります。

しかし、私はこのアプローチに不快感を覚えます(部分的には、開始タグが終了タグと同じファイルにないためです)。

もっと良い方法はありますか?

私は主に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

ファイルをロックせずにアセンブリをロードしようとしています。これらのアセンブリはサードパーティのアセンブリである可能性があるため、必ずしもコードにアクセスできるとは限りません。そのうちの1つまたは2つは、Assembly.Locationを使用して、ディレクトリからファイルを読み取ります。

シャドウコピーを介してこれを実行できることは承知していますが、正しく機能させるのは非常に困難であり、特定のフォーラムの一部のユーザーは、アセンブリをバイト配列にロードし、Assembly.Load(Byte [])オーバーロードを使用することを推奨しています。Assembly.Locationは空の文字列を返し、Assembly.Codebaseはアセンブリをロードするアプリケーションの場所を返すため、これは、これらのアセンブリの1つが親ディレクトリ内のファイルにアクセスしようとするまでうまく機能します。

ロードしているアセンブリのCodebaseまたはLocationプロパティを何らかの方法で設定するためにできることはありますか?コードベースと場所に関するMSDNドキュメントでは、それらはオーバーライド可能なプロパティとして定義されています-それは、ホスティングアプリケーションからそれらをオーバーライドできることを意味しますか?

0 投票する
2 に答える
613 参照

codebase - 複数のコードベース間で変更をどのように同期しますか?

別の名前、別の UI、およびいくつかの変更された機能でブランド化されたチャット アプリケーションのスピンオフを作成したいとします。これらの間の変更を 80% 同一のコードベースに同期するにはどうすればよいでしょうか?

編集:すでにgitを使用しています。

0 投票する
2 に答える
6890 参照

java - イントラネット アプレット用に構成された AllPermission を取得できません。誰でも助けることができますか?

多くの読み取りとテストを行った後、codeBase 許可オプションを介してイントラネット アプレットにすべてのアクセス許可を与えることができませんでした。このアプレットは、OCR リーダー (イメージ ファイルを HDD に書き込む) やその他の外部デバイス用のドライバー ライブラリにアクセスする必要があるため、完全なアクセス許可が必要です。

java.policy ファイルを構成し、以下を追加しました。

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

コンソールでポリシー ファイルをリロードし、ブラウザを再起動した後でも、デフォルトでは許可されていない「user.name」システム プロパティの読み取りなど、多くの操作で java.security.AccessControlException:access denied が発生します。

デバッグのために、デフォルトですべての許可を与えることも試みましたが、それは機能するため、私の問題は基本的に de codeBase オプションに関連しています。JRE1.6-u17 を使用して Windows 7 と Linux クライアントを実行していますが、どちらも同じ動作をしています。

誰でも助けることができますか?

前もって感謝します、

マデイラA

0 投票する
4 に答える
5100 参照

ruby-on-rails - 同じ Rails コードベースから複数のサイトを実行していますか?

あるクライアントが、あるニッチで成功した Rails アプリを別の同様のニッチに適用したいと考えています。アプリのこの新しいインスタンスは、非常によく似たものから始まります。機能はすべて同じで、ロゴと色が異なります。ただし、新しいサイトが成功した場合、必然的に、元のサイトには適用されない大幅なカスタマイズが必要になります。同時に、バグが修正され、1 つのアプリに改善が加えられた場合、両方のアプリがそれらの改善を共有できるはずです。

この問題に対処するための戦略やリソースを提案できる人はいますか? 両方のアプリに適用される変更のテストと実装に大幅に時間がかからないようにするにはどうすればよいですか?

はい、その答えには SCM、プラグイン、gem、Rails エンジンが関係していることはわかっています。これらのツールは今後も使用されます。しかし、この問題を解決するためにこれらのツールをいつどのように使用するかを知りたい.

リンクも大歓迎です。


この質問は次の質問と同じではありません。

同じコードベースで複数の Web サイトを実行していますか? 私の質問では、まったく同じアプリを異なる設定で実行していません。

複数のコードベース間で変更をどのように同期しますか? 同様の質問をしていますが、具体的には Rails アプリについて質問しています。

0 投票する
4 に答える
607 参照

c# - C# デバッガー (またはその他のもの) を使用して、オープン ソース アプリで GUI イベント中に何が起こるかを調べる方法は?

完全なソース コードを含む、C# で作成されたすばらしいアプリが与えられたと想像してください。したがって、ボタンを押す、ホットキーを押すなど、ユーザーイベントを実行するときにどのメソッドが実行されるかを把握する必要があります。コードベースが非常に大きいため、そのボタンのイベント ハンドラーを追跡するなど、コードの関連部分を手動で探す必要はありません。

さて、時間 T (ボタンを押したとき) から実行されているメソッドのログのようなものを取得する簡単な自動化された方法はありますか? この状況を具体的に扱った記事へのリンクを説明および/または提供していただけますか?

0 投票する
2 に答える
2191 参照

java - java.rmi.UnmarshalException: サーバーでクライアント クラスをプルできません

サーバーがクライアント側の定義されたクラスを必要としない単純な状況で正常に動作する 2 台のマシンに 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。適切なマシンを指す適切なポート マッピングがルーターに設定されます。

役割、マシン、OS、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:2002too を使用してみました。

注 3:がルーターに割り当てられており、適切なポート マッピングが設定されているため、使用してみました。このアドレスは解決される必要がmyhostname:2002あります。myhostnamenaplesvenice

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 を保持するつもりです。codebase 要素または probing 要素を使用して正しいパスを指定する方法がわかりません。これが app.config ファイルにあるものです。

実行時にアセンブリ エラーを読み込めませんでした。設定ファイルで何か間違っているようです。SharedFolder は、プロジェクトに追加されるフォルダーです。

0 投票する
1 に答える
200 参照

java - RMIアクティベーション奇妙な問題

RMI 起動可能なサーバーを機能させようとしていますが、今のところうまくいきません。実際にはサーバーは実行されているように見えますが、クライアントは奇妙な例外を引き起こします。

私は3つのプロジェクトを持っています:

  • クライアント
  • 一般
  • サーバ

Common は、クライアントとサーバー間で共有されるコード (リモート インターフェイスなど) です。

私が従う手順(このチュートリアルを適応させています):

  • レジストリを起動 --> OK
  • rmid を実行 --> OK
  • サーバーのセットアップを開始します --> OK
  • クライアントを起動 -->ブーム! サーバー スレッドで NoClassDefFoundError を使用して共通のクラスが見つからないため、アクティブ化は失敗します。

サーバーのコードベースに共通のクラス ファイルを含めているので、これらのクラス/インターフェイスをサーバーで使用できるようにする必要があります。それはリモートインターフェース自体で燃え尽きます-したがって、唯一の代替手段はすべての共通コードをサーバーコードにプルするように見えますが、この方法では、クライアントコードはサーバーコードについて知る必要があり、それは単純ではありません.

少しブラウジングしたところ、ここにいるこの男がまったく同じ問題を抱えているようです。

どちらの場合も、アクティブ化可能なサーバーが他のパッケージのクラスを参照するときに発生しているように見えます (私の場合、上記のリンクのカスタム パッケージはサードパーティです)。

私は本当にここで途方に暮れています-だから、どんなアイデアでも大歓迎です!

編集: いくつかの追加情報 - 問題をデバッグしようとしています。クライアントは件名のリモート オブジェクトを正常に取得しているようです (参照は null ではありません)。リモート インターフェイスのメソッド (クライアントはそのインターフェイスを認識している) が呼び出されるとすぐに、例外がスローされます。最初のメソッド呼び出しでアクティブ化が発生した場合、これは明らかですが、実際にリモート オブジェクト/サーバーをアクティブ化しようとした時期についてはあまり確信が持てません。